Skip to main content

Quality Assurance

Simplifying Email Integration in Selenium with JavaMail

Female It Specialist

JavaMail, a powerful and versatile Java library, comes to the rescue by simplifying the process of sending emails directly from your Selenium scripts.

What is JavaMail?

JavaMail is a Java API that provides a set of abstract classes, interfaces, and implementing classes for sending and receiving email messages. It simplifies the process of handling email communication, making it an ideal choice for test automation frameworks like Selenium.

 

Setting Up JavaMail in Selenium:

To get started with JavaMail in Selenium, follow these steps:

 

Download JavaMail API:

Download the JavaMail API from the official Oracle website: JavaMail API.

 

Add JavaMail JARs to Your Project:

Extract the downloaded JavaMail API and add the JAR files to your Selenium project. You can do this by including the JARs in your project’s build path or using a build tool like Maven.

Sending Emails with JavaMail:

Once JavaMail is set up in your Selenium project, you can use it to send emails with ease. Below is a basic example of sending an email using JavaMail:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import javax.mail.*;
import javax.mail.internet.*;
public class EmailSender {
public static voidmain(String[] args){
// Email configuration
String host = "your-smtp-host.com";
String username = "your-email@example.com";
String password = "your-email-password";
// Recipient email address
String to = "recipient@example.com";
// Email properties
Properties properties = newProperties();
properties.put("mail.smtp.host", host);
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.port", "587");
// Session creation
Session session = Session.getInstance(properties, newAuthenticator(){
@Override
protected PasswordAuthentication getPasswordAuthentication(){
returnnewPasswordAuthentication(username, password);
}
});
try{
// Create a default MimeMessage object
Message message = newMimeMessage(session);
// Set From: header field
message.setFrom(newInternetAddress(username));
// Set To: header field
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
// Set Subject: header field
message.setSubject("Test Automation Report");
// Set the actual message
message.setText("Hello, this is your Selenium test automation report!");
// Send message
Transport.send(message);
System.out.println("Email sent successfully!");
}catch(MessagingException e){
e.printStackTrace();
}
}
}
import javax.mail.*; import javax.mail.internet.*; public class EmailSender { public static void main(String[] args) { // Email configuration String host = "your-smtp-host.com"; String username = "your-email@example.com"; String password = "your-email-password"; // Recipient email address String to = "recipient@example.com"; // Email properties Properties properties = new Properties(); properties.put("mail.smtp.host", host); properties.put("mail.smtp.auth", "true"); properties.put("mail.smtp.starttls.enable", "true"); properties.put("mail.smtp.port", "587"); // Session creation Session session = Session.getInstance(properties, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); try { // Create a default MimeMessage object Message message = new MimeMessage(session); // Set From: header field message.setFrom(new InternetAddress(username)); // Set To: header field message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to)); // Set Subject: header field message.setSubject("Test Automation Report"); // Set the actual message message.setText("Hello, this is your Selenium test automation report!"); // Send message Transport.send(message); System.out.println("Email sent successfully!"); } catch (MessagingException e) { e.printStackTrace(); } } }
import javax.mail.*;

import javax.mail.internet.*;

public class EmailSender {

    public static void main(String[] args) {

        // Email configuration

        String host = "your-smtp-host.com";

        String username = "your-email@example.com";

        String password = "your-email-password";

        // Recipient email address

        String to = "recipient@example.com";

        // Email properties

        Properties properties = new Properties();

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

        properties.put("mail.smtp.auth", "true");

        properties.put("mail.smtp.starttls.enable", "true");

        properties.put("mail.smtp.port", "587");

        // Session creation

        Session session = Session.getInstance(properties, new Authenticator() {

            @Override

            protected PasswordAuthentication getPasswordAuthentication() {

                return new PasswordAuthentication(username, password);

            }

        });

        try {

            // Create a default MimeMessage object

            Message message = new MimeMessage(session);

            // Set From: header field

            message.setFrom(new InternetAddress(username));

            // Set To: header field

            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));

            // Set Subject: header field

            message.setSubject("Test Automation Report");

            // Set the actual message

            message.setText("Hello, this is your Selenium test automation report!");

            // Send message

            Transport.send(message);

            System.out.println("Email sent successfully!");


        } catch (MessagingException e) {

            e.printStackTrace();

        }

    }

}

 

Customizing for Selenium Test Reports:

In a Selenium test automation context, you can customize the email-sending functionality to include test reports as attachments or embed them within the email body. Additionally, you can integrate this into your test framework’s teardown process to automatically notify stakeholders upon test completion.

 

Conclusion:

JavaMail empowers Selenium test automation engineers to integrate email communication seamlessly into their scripts. Whether it’s sending test reports, notifications, or alerts, JavaMail simplifies the process, enhancing the overall efficiency of your Selenium test automation framework.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Jeet Palan

Jeet Palan is an Technical Consultant at Perficient. He has experience in Manual and Automation testing. In addition to this, he is willing to learn different types of testing and likes to know and learn about new trending technologies.

More from this Author

Follow Us