Example to send an e-mail from your Java application (with or without TLS authentication)
In this post I just wanted to share a small example to send an e-mail from your Java application, using TLS authentication. You’ll need to include the javax.mail.jar library from JavaMail in your project as a dependency…
I think all steps are pretty much self-explaining, like how to set the host, username and password, and how to add more recipients…
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class SendMail {
public static void main(String[] args) {
new SendMail();
}
public SendMail() {
String toAddress = "recipient@you.com";
String fromAddress = "from@me.com";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", "smtp.website.net");
properties.setProperty("mail.smtp.port", "25");
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.starttls.enable", "true");
// To override the Authenticator in the session
Authenticator authenticator = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username_or_email", "THE_P@SSWORD");
}
};
// Create a session object with our above properties and the authenticator
Session session = Session.getInstance(properties, authenticator);
try {
// Create a MimeMessage object.
MimeMessage message = new MimeMessage(session);
message.setFrom(fromAddress);
message.addRecipient(Message.RecipientType.TO, new InternetAddress(toAddress));
// Add TO, CC or BCC addresses as needed...
message.setSubject("This is a subject for my e-mail...");
message.setText("This is the body of my message...\n\nSincerely yours,\n\n\nTom");
// Actually end the message...
Transport.send(message);
System.out.println("Message has been sent");
} catch (MessagingException e) {
e.printStackTrace(System.err);
}
}
}
If you don’t need authentication, your example becomes a lot shorter:
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class SendMail {
public static void main(String[] args) {
new SendMail();
}
public SendMail() {
String toAddress = "recipient@you.com";
String fromAddress = "from@me.com";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", "smtp.website.net");
// Create a session object with our above properties
Session session = Session.getDefaultInstance(properties);
try {
// Create a MimeMessage object.
MimeMessage message = new MimeMessage(session);
message.setFrom(fromAddress);
message.addRecipient(Message.RecipientType.TO, new InternetAddress(toAddress));
// Add TO, CC or BCC addresses as needed...
message.setSubject("This is a subject for my e-mail...");
message.setText("This is the body of my message...\n\nSincerely yours,\n\n\nTom");
// Actually end the message...
Transport.send(message);
System.out.println("Message has been sent");
} catch (MessagingException e) {
e.printStackTrace(System.err);
}
}
}
Enjoy!