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 Security with Maven
Java Program to Implement Gabow Algorithm
Guide to CountDownLatch in Java
Spring Boot - Admin Server
Java Program to Implement Radix Sort
Java Program to Implement Word Wrap Problem
Updating your Password
Java Program to Represent Graph Using Adjacency List
Inject Parameters into JUnit Jupiter Unit Tests
Apache Commons Collections Bag
Lập trình đa luồng với CompletableFuture trong Java 8
Java Program to Implement Interpolation Search Algorithm
Generating Random Dates in Java
A Quick Guide to Spring Cloud Consul
Guide to ThreadLocalRandom in Java
Converting Between an Array and a Set in Java
How to Return 404 with Spring WebFlux
Spring Boot - Securing Web Applications
Beans and Dependency Injection
Spring RestTemplate Request/Response Logging
Spring Cloud Connectors and Heroku
Java Program to Perform Postorder Recursive Traversal of a Given Binary Tree
Predicate trong Java 8
Introduction to Eclipse Collections
Dynamic Proxies in Java
Spring’s RequestBody and ResponseBody Annotations
API Authentication with Node.js
Java Program to Implement the Schonhage-Strassen Algorithm for Multiplication of Two Numbers
Java Program to implement Bit Matrix
Java Program to Search for an Element in a Binary Search Tree
Java Program to Implement the Binary Counting Method to Generate Subsets of a Set
Configure a RestTemplate with RestTemplateBuilder