Not able to send an email in hybrid framework using Junit | Selenium Forum
M
Posted on 24/08/2015
Hi Ashish,

I was viewing Junit with Hybrid framework and followed all the videos and now I reached at the video in which we are sending emails using Util package.

I am able to create html report and zip the file but send email code is not sending me an email. Below is the code for the same


package com.qtpselenium.util;



//set CLASSPATH=%CLASSPATH%;activation.jar;mail.jar

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;

import javax.mail.internet.*;

import java.util.*;



public class SendMail

{
public static void execute(String reportFileName) throws Exception

{
String path=System.getProperty("user.dir")+"//"+reportFileName;
Zip.zip(System.getProperty("user.dir")+"//"+ReportUtil.result_FolderName,reportFileName);


String[] to={"abdulrahmanchaudhari@gmail.com"};

String[] cc={};
String[] bcc={};

//This is for google

SendMail.sendMail("abdulrahmanchaudhari@gmail.com",
"metalhard",
"smtp.gmail.com",
"465",
"true",
"true",
true,
"javax.net.ssl.SSLSocketFactory",
"false",
to,
cc,
bcc,
"Automation test Reports",
"Please find the reports attached.\n\n Regards\nWebMaster",
path,
"email_reports");


}



public static boolean sendMail(String userName,
String passWord,
String host,
String port,
String starttls,
String auth,
boolean debug,
String socketFactoryClass,
String fallback,
String[] to,
String[] cc,
String[] bcc,
String subject,
String text,
String attachmentPath,
String attachmentName){


Properties props = new Properties();

//Properties props=System.getProperties();

props.put("mail.smtp.user", userName);

props.put("mail.smtp.host", host);

if(!"".equals(port))

props.put("mail.smtp.port", port);

if(!"".equals(starttls))

props.put("mail.smtp.starttls.enable",starttls);

props.put("mail.smtp.auth", auth);
// props.put("mail.smtps.auth", "true");


if(debug){

props.put("mail.smtp.debug", "true");

}else{

props.put("mail.smtp.debug", "false");

}

if(!"".equals(port))

props.put("mail.smtp.socketFactory.port", port);

if(!"".equals(socketFactoryClass))

props.put("mail.smtp.socketFactory.class",socketFactoryClass);

if(!"".equals(fallback))

props.put("mail.smtp.socketFactory.fallback", fallback);



try

{

Session session = Session.getDefaultInstance(props, null);

session.setDebug(debug);

MimeMessage msg = new MimeMessage(session);

msg.setText(text);

msg.setSubject(subject);
//attachment start
// create the message part

Multipart multipart = new MimeMultipart();
MimeBodyPart messageBodyPart = new MimeBodyPart();
DataSource source =
new FileDataSource(attachmentPath);
messageBodyPart.setDataHandler(
new DataHandler(source));
messageBodyPart.setFileName(attachmentName);
multipart.addBodyPart(messageBodyPart);

// attachment ends

// Put parts in message
msg.setContent(multipart);
msg.setFrom(new InternetAddress("abdulrahmanchaudhari@gmail.com"));

for(int i=0;i<to.length;i++){

msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to[i]));

}

for(int i=0;i<cc.length;i++){

msg.addRecipient(Message.RecipientType.CC, new InternetAddress(cc[i]));

}

for(int i=0;i<bcc.length;i++){

msg.addRecipient(Message.RecipientType.BCC, new InternetAddress(bcc[i]));

}

msg.saveChanges();

Transport transport = session.getTransport("smtp");

transport.connect(host, userName, passWord);

transport.sendMessage(msg, msg.getAllRecipients());

transport.close();

return true;

}

catch (Exception mex)

{

mex.printStackTrace();

return false;

}

}



}

M
Replied on 25/08/2015

what is the exception you're getting?


M
Replied on 25/08/2015

Hi

I am not getting exception.. Problem is that I am not getting emails


M
Replied on 26/08/2015

Hi

Please give me the solution. I never get a proper solution for the things which I post


M
Replied on 28/08/2015

Hi

Please give me the soultion


M
Replied on 03/09/2015

I also faced this issue
Problem is that gmail has put some restrictions
If you use some other mail server then it will be good