Friday, April 17, 2015

Email Configuration with liferay


Step 1: Create one portlet plugin project with name MailingConfiguration , inside this plugin create one portlet name MailConfig

Step 2: Paste below code in portlet view.jsp

<%
@page import="javax.portlet.PortletURL"%>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/aui" prefix="aui" %>
<portlet:defineObjects />

<p style="border:1px solid green;">Mail Configuration</p>

<%
PortletURL mailingURL = renderResponse.createActionURL();
mailingURL.setParameter(actionRequest.ACTION_NAME, "mailing");
%>


<aui:form method="post" action="<%=mailingURL.toString()%>">
 <aui:input name="name" label="Name" value=""/>
 <aui:input name="email" label="Email" value=""/> 
 <aui:button type="submit" value="SEND" />
</aui:form>

 
Step 3: Paste below code in portlet controller class MailConfig.java

package com.test;



import java.io.IOException;



import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.portlet.ActionRequest;

import javax.portlet.ActionResponse;

import javax.portlet.PortletException;



import com.liferay.mail.service.MailServiceUtil;

import com.liferay.portal.kernel.mail.MailMessage;

import com.liferay.portal.kernel.util.ParamUtil;

import com.liferay.util.bridges.mvc.MVCPortlet;



/**

 * Portlet implementation class MailConfig

 */

public class MailConfig extends MVCPortlet {





   public void mailing(ActionRequest actionRequest,

        ActionResponse actionResponse) throws IOException, PortletException {

    

    String name = ParamUtil.getString(actionRequest, "name");

    String email = ParamUtil.getString(actionRequest, "email");

    

    MailMessage mailMessage = new MailMessage();

    try {

        mailMessage.setFrom(new InternetAddress("azharuddinmd864@gmail.com"));

    } catch (AddressException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

    }

    mailMessage.setSubject("USER REGISTRATION");

    mailMessage.setHTMLFormat(true);

    try {

        mailMessage.setTo(new InternetAddress(email));

    } catch (AddressException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

    }    

    mailMessage.setBody("<html><body><table style='font-size:20px;color:black;width:100%;'>" +

            "<tr><td style='font-size:20px;font-weight:bold;color:black;padding:1%;'>"+name+" </td>"+

            "</tr>" +

            "<tr>" +

            "<td style='font-size:16px;color:black;padding:1%;'>Thank you for registering</td>"+

            "</tr>" +

            "</table></body></html>");

    MailServiceUtil.sendEmail(mailMessage);

   }    

}



Step 4: For email configuration we can use any on below ways:
   
i>Using admin control panel


ii>Using portal-setup-wizard.properties , we can define email configuration in this file also.

iii> Using portal-ext.properties

 Paste below mailing configuration in portal-ext.properties file , after adding configuration restart server.

mail.session.mail.pop3.host=pop.gmail.com

mail.session.mail.pop3.password=PASSWORD

mail.session.mail.pop3.port=110

mail.session.mail.pop3.user=USER

mail.session.mail.imap.host=imap.gmail.com

mail.session.mail.imap.port=993

mail.session.mail.store.protocol=imap

mail.session.mail.transport.protocol=smtp

mail.session.mail.smtp.host=smtp.gmail.com

mail.session.mail.smtp.password= ur gmail account password.

mail.session.mail.smtp.user=azharuddinmd864@gmail.com

mail.session.mail.smtp.port=465

mail.session.mail.smtp.auth=true

mail.session.mail.smtp.starttls.enable=true

mail.session.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory


Step 5: You have to Turn On your gmail account less secure app setting by going to below url

https://www.google.com/settings/security/lesssecureapps

4 comments:

  1. yea first one worked for me but portlet-ext.property not worked for me.......thanks...

    ReplyDelete