下一步,如下所示运行SimpleSender,用你自己的SMTP替换你email设置中的smtp.myISP.net:
Java com.lotontech.mail.SimpleSender smtp.myISP.net bill@lotontech.com
ben@lotontech.com "Hello" "Just to say Hello."
如果它能正常工作起来的话,在接收端你将看到如图2所示的内容
图2从SimpleSender读取的消息
SimpleSender类主要由Send(…)方法完成。其代码如下:
/**
* "send" method to send the message.
*/
public static void send(String smtpServer, String to, String from
, String subject, String body)
{
try
{
Properties props = System.getProperties();
// -- Attaching to default Session, or we could start a new one --
props.put("mail.smtp.host", smtpServer);
Session session = Session.getDefaultInstance(props, null);
// -- Create a new message --
Message msg = new MimeMessage(session);
// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress(from));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(to, false));
// -- We could include CC recipients too --
// if (cc != null)
// msg.setRecipients(Message.RecipientType.CC
// ,InternetAddress.parse(cc, false));
// -- Set the subject and body text --
msg.setSubject(subject);
msg.setText(body);
// -- Set some other header information --
msg.setHeader("X-Mailer", "LOTONtechEmail");
msg.setSentDate(new Date());
// -- Send the message --
Transport.send(msg);
System.out.println("Message sent OK.");
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
首先,请注意,你得到一个emailsession(java.mail.Session),没有它你什么都做不了。在这个案例中,你调用了Sesion.getDefultInstance(…)来得到一个共享session,其它的桌面应用程序也可以使用它;你也可以通过Session.getInstance(…)方法建立一个新的session,它对于你的应用程序来说是唯一的。然后我们能够证明email客户端应用程序对每个用户来说,其使用方法都是一样的,比如它可以是一个用servlet实现的基于Web的email系统。
建立一个session需要设置一些属性;如果你通过SMTP发送消息,那么至少需要设置mail.smtp.host属性。在API文档中你可以找到其它的属性。
现在你有了一个session,创建了一个消息。在这个例子中,你就可以设置email地址信息、主题、正文了,所有这些都取自于命令行。你也可以设置一些头信息,包括日期等,并且你还可以指定复制(CC)的收件人。
最后,你通过javax.mail.Transport类发送消息。如果你想知道我们的emailsession,请看后面的消息构造器。 (出处:http://www.knowsky.com)