API JavaMail - Máy chủ SMPT của Gmail
Trong tất cả các chương trước, chúng tôi đã sử dụng máy chủ JangoSMPT để gửi email. Trong chương này, chúng ta sẽ tìm hiểu về máy chủ SMPT do Gmail cung cấp. Gmail (trong số những người khác) cung cấp miễn phí sử dụng máy chủ SMTP công cộng của họ.
Thông tin chi tiết về máy chủ SMTP của Gmail có thể được tìm thấy tại đây . Như bạn có thể thấy trong chi tiết, chúng tôi có thể sử dụng kết nối TLS hoặc SSL để gửi email qua máy chủ SMTP của Gmail.
Quy trình gửi email bằng máy chủ SMTP của Gmail tương tự như được giải thích trong chương Gửi email , ngoại trừ việc chúng tôi sẽ thay đổi máy chủ lưu trữ. Điều kiện tiên quyết là địa chỉ email của người gửi phải là một tài khoản gmail đang hoạt động. Hãy để chúng tôi thử một ví dụ.
Tạo lớp Java
Tạo một tệp Java SendEmailUsingGMailSMTP, nội dung trong số đó như sau:
package com.tutorialspoint;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendEmailUsingGMailSMTP {
public static void main(String[] args) {
// Recipient's email ID needs to be mentioned.
String to = "[email protected]";//change accordingly
// Sender's email ID needs to be mentioned
String from = "[email protected]";//change accordingly
final String username = "abc";//change accordingly
final String password = "*****";//change accordingly
// Assuming you are sending email through relay.jangosmtp.net
String host = "smtp.gmail.com";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", "587");
// Get the Session object.
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// Create a default MimeMessage object.
Message message = new MimeMessage(session);
// Set From: header field of the header.
message.setFrom(new InternetAddress(from));
// Set To: header field of the header.
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to));
// Set Subject: header field
message.setSubject("Testing Subject");
// Now set the actual message
message.setText("Hello, this is sample for to check send "
+ "email using JavaMailAPI ");
// Send message
Transport.send(message);
System.out.println("Sent message successfully....");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
Ở đây máy chủ được đặt là smtp.gmail.com và cổng được đặt là 587 . Ở đây chúng tôi đã kích hoạt kết nối TLS.
Biên dịch và Chạy
Bây giờ lớp của chúng ta đã sẵn sàng, chúng ta hãy biên dịch lớp trên. Tôi đã lưu lớp SendEmailUsingGMailSMTP.java vào thư mục:/home/manisha/JavaMailAPIExercise. Chúng tôi cần các chum javax.mail.jar và activation.jar trong classpath. Thực thi lệnh bên dưới để biên dịch lớp (cả hai lọ đều được đặt trong thư mục / home / manisha /) từ dấu nhắc lệnh:
javac -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: SendEmailUsingGMailSMTP.java
Bây giờ lớp đã được biên dịch, hãy thực thi lệnh dưới đây để chạy:
java -cp /home/manisha/activation.jar:/home/manisha/javax.mail.jar: SendEmailUsingGMailSMTP
Xác minh đầu ra
Bạn sẽ thấy thông báo sau trên bảng điều khiển lệnh:
Sent message successfully....