STACKJAVA

Code ví dụ gửi gmail bằng Java – demo

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