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:

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.