Code ví dụ gửi gmail bằng Java – demo
Trước hết, để gửi được gmail trong Java bạn phải cài đặt tài khoản gmail của bạn cho phép truy cập từ các ứng dụng kém bảo mật để có thể gửi gmail bằng Java.
Ví dụ bình thường đăng nhập gmail của bạn phải có thêm bước gửi tin nhắn xác minh chẳng hạn thì trong Java không hỗ trợ việc đó.
Để cho phép gửi Gmail từ ứng dụng kém bảo mật, bạn làm theo hướng dẫn sau:
https://support.google.com/accounts/answer/6010255?hl=vi
Ở đây mình dùng 2 thư viện để send gmail là:
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api --> <dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId> <version>1.5.2</version> </dependency>
Gửi gmail với text thông thường:
import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class DemoSendGmail { public static void main(String args[]) throws AddressException, MessagingException { sendText(); } public static void sendText() throws AddressException, MessagingException { Properties mailServerProperties; Session getMailSession; MimeMessage mailMessage; // Step1: setup Mail Server mailServerProperties = System.getProperties(); mailServerProperties.put("mail.smtp.port", "587"); mailServerProperties.put("mail.smtp.auth", "true"); mailServerProperties.put("mail.smtp.starttls.enable", "true"); // Step2: get Mail Session getMailSession = Session.getDefaultInstance(mailServerProperties, null); mailMessage = new MimeMessage(getMailSession); mailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("abc@gmail.com")); //Thay abc bằng địa chỉ người nhận // Bạn có thể chọn CC, BCC // generateMailMessage.addRecipient(Message.RecipientType.CC, new InternetAddress("cc@gmail.com")); //Địa chỉ cc gmail mailMessage.setSubject("Demo send gmail from Java"); mailMessage.setText("Demo send text by gmail from Java"); // Step3: Send mail Transport transport = getMailSession.getTransport("smtp"); // Thay your_gmail thành gmail của bạn, thay your_password thành mật khẩu gmail của bạn transport.connect("smtp.gmail.com", "your_gmail", "your_password"); transport.sendMessage(mailMessage, mailMessage.getAllRecipients()); transport.close(); } }
Gửi gmail với thông tin dạng HTML
import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class DemoSendGmail { public static void main(String args[]) throws AddressException, MessagingException { sendHTML(); } public static void sendHTML() throws AddressException, MessagingException { Properties mailServerProperties; Session getMailSession; MimeMessage mailMessage; // Step1: setup Mail Server mailServerProperties = System.getProperties(); mailServerProperties.put("mail.smtp.port", "587"); mailServerProperties.put("mail.smtp.auth", "true"); mailServerProperties.put("mail.smtp.starttls.enable", "true"); // Step2: get Mail Session getMailSession = Session.getDefaultInstance(mailServerProperties, null); mailMessage = new MimeMessage(getMailSession); mailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("abc@gmail.com")); //Thay abc bằng địa chỉ người nhận // Bạn có thể chọn CC, BCC // generateMailMessage.addRecipient(Message.RecipientType.CC, new InternetAddress("cc@gmail.com")); //Địa chỉ cc gmail mailMessage.setSubject("Demo send gmail from Java"); String emailBody = "<p style='color: red'>Demo send HTML from Java<p>"; mailMessage.setContent(emailBody, "text/html"); // Step3: Send mail Transport transport = getMailSession.getTransport("smtp"); // Thay your_gmail thành gmail của bạn, thay your_password thành mật khẩu gmail của bạn transport.connect("smtp.gmail.com", "your_gmail", "your_password"); transport.sendMessage(mailMessage, mailMessage.getAllRecipients()); transport.close(); } }
Gửi gmail với file đính kèm:
import java.io.File; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; public class DemoSendGmail { public static void main(String args[]) throws AddressException, MessagingException { sendFile(); } public static void sendFile() throws AddressException, MessagingException { Properties mailServerProperties; Session getMailSession; MimeMessage mailMessage; // Step1: setup Mail Server mailServerProperties = System.getProperties(); mailServerProperties.put("mail.smtp.port", "587"); mailServerProperties.put("mail.smtp.auth", "true"); mailServerProperties.put("mail.smtp.starttls.enable", "true"); // Step2: get Mail Session getMailSession = Session.getDefaultInstance(mailServerProperties, null); mailMessage = new MimeMessage(getMailSession); mailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("abc@gmail.com")); //Thay abc bằng địa chỉ người nhận // Bạn có thể chọn CC, BCC // generateMailMessage.addRecipient(Message.RecipientType.CC, new InternetAddress("cc@gmail.com")); //Địa chỉ cc gmail mailMessage.setSubject("Demo send file by Gmail from Java"); // Tạo phần gửi message BodyPart messagePart = new MimeBodyPart(); messagePart.setText("This is message body"); // Tạo phần gửi file BodyPart filePart = new MimeBodyPart(); File file = new File("C://a.txt"); DataSource source = new FileDataSource(file); filePart.setDataHandler(new DataHandler(source)); filePart.setFileName(file.getName()); // Gộp message và file vào để gửi đi Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messagePart); multipart.addBodyPart(filePart); mailMessage.setContent(multipart ); // Step3: Send mail Transport transport = getMailSession.getTransport("smtp"); // Thay your_gmail thành gmail của bạn, thay your_password thành mật khẩu gmail của bạn transport.connect("smtp.gmail.com", "your_gmail", "your_password"); transport.sendMessage(mailMessage, mailMessage.getAllRecipients()); transport.close(); } }
Code ví dụ gửi gmail bằng Java – demo
Okay, Done!
Download source code tại đây: https://github.com/stackjava/SendGmail