概述
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。JavaMail是可选包,因此如果需要使用的话你需要首先从java官网上下载。目前最新版本是JavaMail1.5.0[1] ,使用JavaMail的时候需要Javabean Activation Framework的支持,因此你也需要下载JAF。安装JavaMail只是需要把他们加入到CLASSPATH中去,如果你不想修改CLASSPATH的话,可以直接把他们的jar包直接copy到JAVA_HOME/lib/ext下。这样JavaMail就安装好了。
JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Transport,Store,Folder等。Session定义了一个基本的邮件会话,它需要从Properties中读取类似于邮件服务器,用户名和密码等信息
下面是一个使用JavaMail发送邮件的例子
public class MailTest {
public static void main(String[] args) throws IOException, MessagingException {
Properties properties = new Properties();
try(InputStream inputStream = Files.newInputStream(Paths.get("J:\\Program\\idea-workplace\\Socket\\mail.properties")))
{
properties.load(inputStream);
}
List<String> lines = Files.readAllLines(Paths.get("J:\\Program\\idea-workplace\\Socket\\mail","message"), Charset.forName("UTF-8"));
String from = lines.get(0);
String to = lines.get(1);
String subject = lines.get(2);
StringBuilder sb = new StringBuilder();
for(int i = 3; i < lines.size(); i++){
sb.append(lines.get(i));
sb.append("\n");
}
Session session = Session.getDefaultInstance(properties);//建立一个Session
session.setDebug(true);//设置为调试模式
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
msg.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
msg.setSubject(subject);
msg.setText(sb.toString());
Transport ts = session.getTransport();
try{
ts.connect("zhangsan@126.com","123456");//发送方的账号和密码
ts.sendMessage(msg,msg.getAllRecipients());
}catch (Exception e ){
}finally {
ts.close();
}
}
}