首先需要导入jar包,mail-1.4.2.jar,然后给出最简单的java mail发送邮件的代码,SimpleSendMailDemo.java
SimpleSendMailDemo.java
package com.steven.mail; import java.util.Properties; import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; /** * 最基本的邮件发送代码 * * @author Steven * */ public class SimpleSendMailDemo { public static void main(String[] args) throws Exception { // 创建邮件的发送过程中用到的主机和端口号的属性文件 Properties pro = new Properties(); // 设置邮件发送方的主机地址如果是163邮箱,则为smtp.163.com // 如果是其他的邮箱可以参照http://wenku.baidu.com/link?url=Cf-1ggeW3e7Rm9KWfz47UL7vvkRpPxAKBlYoTSGpnK4hxpJDiQ0A4lRoPDncMlcMIvUpEn6PD0aObgm5zJaM7AOGkRdccSx6HDH2fSWkxIq这个文档 pro.put("mail.smtp.host", "smtp.qq.com"); // 设置发送邮件端口号 pro.put("mail.smtp.port", "25"); // 设置邮件发送需要认证 pro.put("mail.smtp.auth", "true"); // 创建邮件验证信息,即发送邮件的用户名和密码 Authenticator authenticator = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { // 重写验证方法,填写用户名,密码 return new PasswordAuthentication("songdeitao@qq.com", "123"); } }; // 根据邮件会话 构建一个邮件的session Session sendMailSession = Session .getDefaultInstance(pro, authenticator); // 创建一个邮件消息 Message message = new MimeMessage(sendMailSession); // 创建邮件发送者地址 Address sourceAddress = new InternetAddress("songdeitao@qq.com"); // 将原地址设置到消息的信息中 message.setFrom(sourceAddress); // 创建邮件的接收者地址 Address destAddress = new InternetAddress("songdeitao@163.com"); // 将接收者的地址设置到消息的信息中 message.setRecipient(Message.RecipientType.TO, destAddress); // 设置邮件的主题 message.setSubject("Merry Christmas!"); // 设置邮件的发送内容 message.setText("你好,圣诞节快乐!"); // 可以设置邮件的发送时间(就是对方看邮件发送的时间) // String sendDate = "2013-12-23 17:55:00"; // Date date = new // SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(sendDate); // message.setSentDate(date); // 发送邮件 Transport.send(message); } } |
这个例子是完全没有封装后的源代码,如果进行封装的话,可以考虑将发送的邮箱信息封装成一个邮件信息的类,然后验证可以通过一个类继承Authenticator然后复写方法getPasswordAuthentication(),接着发送的主要业务逻辑可以封装成一个类,这样在使用的时候,就可以通过创建邮件信息,进行验证,通过主要的业务逻辑调用发送邮件。
然后发送的最终效果如下图1所示:
图1
最新内容请见作者的GitHub页:http://qaseven.github.io/