JavaMail API - 使用Java从本地SMTP发送电子邮件

本教程将帮助您使用Java从本地SMTP服务器发送电子邮件。本教程使用javax.mail(JavaMail)API用于发送电子邮件

JavaMail API支持发送电子邮件JavaMail(javax.mail)接口。 javax.mail 拥有所有发送电子邮件类,如SMTP,POP3和IMAP其他邮件协议所需的类。 在本文中,我们使用JavaMail API使用Java编程语言通过本地SMTP服务器发送电子邮件。确保你是在本地主机上运行SMTP服务器。

第1步:安装JavaMail环境

首先我们需要下载包含javax.mail所有类的jar文件。从Oracle官方网站下载JAR( mail.jar)文件。 现在系统环境中设置类路径。 Windows用户请确认您已经配置PATH变量为你的Java安装路径。 Windows:
c:> set classpath=mail.jar;.;
Linux:
# export JAVA_HOME=/opt/jdk1.8.0_05/
# export PATH=$PATH:$JAVA_HOME/bin
# export CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar:mail.jar:.

第2步:写一个Java程序发送电子邮件

创建一个包含以下内容的Java文件SendMailJavaAPI.java。 在这个脚本中您需要更改电子邮件地址,按您的要求。
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 SendMailJavaAPI {

public static void main(String[] args) throws Exception{

String to="recipient@example.com";
String from="sender@example.com";

Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);

String msgBody = "Sending email using JavaMail API…";

try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from, "NoReply"));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress(to, "Mr. Recipient"));
msg.setSubject("Welcome To Java Mail API");
msg.setText(msgBody);
Transport.send(msg);
System.out.println("Email sent successfully…");

} catch (AddressException e) {
throw new RuntimeException(e);
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}

第3步:执行程序发送电子邮件

最后,我们需要执行Java程序来发送电子邮件。我们知道,需要两步来操作,首先要编译程序,其次运行它。
# javac SendMailJavaAPI.java
# java SendMailJavaAPI