import javax.mail.*; import javax.mail.internet.*; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication; import java.util.Properties; public class SimpleMail { private static final String SMTP_HOST_NAME = "smtp.myserver.com"; private static final String SMTP_AUTH_USER = "myusername"; private static final String SMTP_AUTH_PWD = "mypwd"; public static void main(String[] args) throws Exception{ new SimpleMail().test(); } public void test() throws Exception{ Properties props = new Properties(); props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.host", SMTP_HOST_NAME); props.put("mail.smtp.auth", "true"); Authenticator auth = new SMTPAuthenticator(); Session mailSession = Session.getDefaultInstance(props, auth); // uncomment for debugging infos to stdout // mailSession.setDebug(true); Transport transport = mailSession.getTransport(); MimeMessage message = new MimeMessage(mailSession); message.setContent("This is a test", "text/plain"); message.setFrom(new InternetAddress("info@maixuanviet.com")); message.addRecipient(Message.RecipientType.TO, new InternetAddress("maixuanviet.com@gmail.com")); transport.connect(); transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO)); transport.close(); } private class SMTPAuthenticator extends javax.mail.Authenticator { public PasswordAuthentication getPasswordAuthentication() { String username = SMTP_AUTH_USER; String password = SMTP_AUTH_PWD; return new PasswordAuthentication(username, password); } } }
NOTE: The JavaMail Authenticator is found in the javax.mail package and is different from the java.net class of the same name. The two don’t share the same Authenticator as the JavaMail API works with Java 1.1, which didn’t have the java.net variety.
Related posts:
Spring WebClient Requests with Parameters
Creating Docker Images with Spring Boot
RestTemplate Post Request with JSON
The Spring @Controller and @RestController Annotations
Java Program to Implement Quick Sort Using Randomization
Java Program to Find SSSP (Single Source Shortest Path) in DAG (Directed Acyclic Graphs)
Control Structures in Java
Guide to the Java Clock Class
Getting Started with Custom Deserialization in Jackson
Runnable vs. Callable in Java
Introduction to Spliterator in Java
Life Cycle of a Thread in Java
Request a Delivery / Read Receipt in Javamail
Java toString() Method
Custom Thread Pools In Java 8 Parallel Streams
Spring 5 Functional Bean Registration
Java Program to Implement Interval Tree
Java Program to Implement Sparse Array
Retrieve User Information in Spring Security
Java Program to Implement Naor-Reingold Pseudo Random Function
Java Program to Implement Fibonacci Heap
Binary Numbers in Java
Spring Boot - Enabling HTTPS
Java Program to Represent Graph Using Linked List
Spring Boot - Web Socket
Java Program to Implement Ternary Search Tree
Java Program to Implement Pagoda
Java Program to Implement Counting Sort
Lập trình đa luồng trong Java (Java Multi-threading)
Sao chép các phần tử của một mảng sang mảng khác như thế nào?
Java Program to Check whether Directed Graph is Connected using BFS
Updating your Password