-- Start
JavaMail 是一个用来发送电子邮件的包,Java EE (j2ee.jar) 中包含了该包,但是如果你使用的是Java SE,那么首先你必须下载 JavaMail 包。
你可以在 Google 中搜索 JavaMail download,然后到官网去下载最新的 JavaMail 包。然后把 mail.jar 添加到自己的 classpath 中就可以了。值得注意的是,如果你使用的是 Java SE 6 以下的版本,你还需要下载 JavaBeans Activation Framework 包, 然后将 activation.jar 也添加到自己的 classpath 中。
通常邮件服务器使用以下一种或多种协议来收发电子邮件。
事实上,正是由于 JavaMail 封装了这些协议,从而使我们在收发邮件的时候只需面对 API, 而无需关心协议细节。
import java.util.Date; import java.util.Properties; import javax.mail.Authenticator; 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 Test { // 修改此处即可利用自己的邮件服务器来发送邮件 public static final String HOST = "smtp.163.com"; public static final String USER = "wave0409"; public static final String PASSWORD = "*******************"; public static final String ADDRESS = "[email protected]"; // 注意修改此处,千万不要害我 public static final String SUBJECT = "Test"; public static final String TEXT = "This is a test mail."; public static void main(String[] args) throws Exception { try { // 设置javaMail属性 Properties props = new Properties(); props.put("mail.smtp.host", HOST); // 邮件服务器 props.put("mail.transport.protocol", "smtp"); // 协议 props.put("mail.smtp.auth", "true"); // 是否需要认证(用户名,密码) // 认证 Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(USER, PASSWORD); } }; // 获取session实例 Session sendMailSession = Session.getInstance(props, auth); // 构造邮件 Message newMessage = new MimeMessage(sendMailSession); newMessage.setFrom(new InternetAddress(ADDRESS)); newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(ADDRESS)); newMessage.setSubject(SUBJECT); newMessage.setSentDate(new Date()); newMessage.setText(TEXT); // 发送邮件 Transport.send(newMessage); System.out.println("发送成功,请注意查收。"); } catch (MessagingException m) { m.printStackTrace(); } } }
事实上,利用 JavaMail 还可以做很多事情,如:发送 html 邮件,发送附件,阅读邮件等等。在下载的 JavaMail 包的 demo 文件夹下可以找到更多例子。
-- 更多参见:Java EE 精萃
-- 声 明:转载请注明出处
-- Last Updated on 2012-08-16
-- Written by ShangBo on 2012-07-28
-- End