以前接触过javaMail,不过没有做过相应的实例,现在重新学习了一下。
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于MicrosoftOutlook的应用程序。JavaMail包中用于处理电子邮件的核心类是:Session,Message,Address,Authenticator,Store,Transport,Folder等。Session定义了一个基本的邮件会话,它需要从Properties中读取类似于邮件服务器,用户名和密码等信息。
下面分享一个永javaMail实现的发送邮件的实例:
Public class SimpleSender {
public static void main(String args[]) {
try
{
String smtpServer = "192.168.1.254";
String to = "jizhou@xxxx.com";
String from = "lijy@xxxx.com";
String subject = "test mail";
String body ="test mail";
String msgAttachment = "This is an attachment string!";
send(smtpServer, to, from, subject, body, msgAttachment);
} catch (Exception ex) {
System.out.println(ex.toString());
}
System.exit(0);
}
//发送一封简单的邮件
Public static void send(String smtpServer, String to, Stringfrom, String subject, String body) {
try
{
Propertiesprops = System.getProperties();
props.put("mail.smtp.host",smtpServer);
/**
*java通过System.getProperties()获取系统参数,
*为Sesion.getDefultInstance准备参数。
*/
Sessionsession = Session.getDefaultInstance(props, null);
/**
*首先要一个emailsession(java.mail.Session),没有它什么都做不了。
*调用了Sesion.getDefultInstance(…)来得到一个共享session。
*建立一个session需要设置一些属性。如果你通过SMTP发送消息,
*那么至少需要设置mail.smtp.host属性。
*在API文档中你可以找到其它的属性。
*/
Messagemsg = new MimeMessage(session);
/**
*一旦获得Session对象,就可以继续创建要发送的消息。
*可以设置email地址信息、主题、正文、头信息、日期、复制(CC)收件人。
*/
msg.setFrom(newInternetAddress(from));
//发件人地址
InternetAddress[]address = { new InternetAddress(to) };
msg.setRecipients(Message.RecipientType.TO,address);
//收件人地址,可以是一个或多个。msg.setSubject(subject);
// 邮件主题
msg.setSentDate(new Date());
// 发送时间
msg.setText(body);
//邮件正文的内容
msg.setHeader("X-Mailer","LOTONtechEmail");
Transport.send(msg);
/**
*通过javax.mail.Transport类发送消息。
*/
System.out.println("Messagesent OK.");
}catch (Exception ex) {
ex.printStackTrace();
} }