1、薪姚蟪食引入邮件发送的jar包如果建立的是Maven项目,那么在pom.xml文件中引入依赖 <properties> <javamail.version>1.4.1</javamail.version> </properties> <dependencies> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>${javamail.version}</version> </dependency> <dependencies>如果建立的不是Maven项目,那么需要webh中引入javax.mail-1.5.1.jar
2、建夷爵蹂柢立邮件发送的工具类import java.util.Properties;import javax.mail.Address;import javax.mail.Messagin爿讥旌护gException;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import org.junit.Test;public class SendMail { public static boolean sendMail(String email, String emailMsg) { String from = "[email protected]";// 邮件发送人的邮件地" String to = email;// 邮件接收人的邮件地址 final String username = "[email protected]";// 发件人的邮件帐户 final String password = "123";// 发件人的邮件密码 // 定义Properties对象,设置环境信息 Properties props = System.getProperties(); // 设置邮件服务器的地址 props.setProperty("mail.smtp.host", "smtp.163.com");// 指定smtp服务器 props.setProperty("mail.smtp.auth", "true"); props.setProperty("mail.transport.protocol", "smtp");// 设置发送邮件使用的协议 // 创建Session对象,session对象表示整个邮件的环境信息 Session session = Session.getInstance(props); // 设置输出调试信息 session.setDebug(true); try { // Message的实例对象表示一封电子邮件 MimeMessage message = new MimeMessage(session); // 设置发件人的地址 message.setFrom(new InternetAddress(from)); // 设置主题 message.setSubject("用户激活"); // 设置邮件的文本内容 // message.setText("Welcome to JavaMail World!"); message.setContent((emailMsg), "text/html;charset=utf-8"); // 从session的环境中获取发送邮件的对象 Transport transport = session.getTransport(); // 连接邮件服务器 transport.connect("smtp.163.com", 25, username, password); // 设置收件人地址,并发送消息 transport.sendMessage(message, new Address[] { new InternetAddress(to) }); transport.close(); return true; } catch (MessagingException e) { e.printStackTrace(); return false; }}
3、创建Junit的测试方法@Test public void testSendMail() { SendMail.sendMail("[email protected]","hello world!"); }
4、异常处惯栲狠疲理535 Error: authentication failedjavax.mail.AuthenticationFailedException at javax.mail.Service.connect(Service.java:319)当执行测试方法的时候会出现以上的异常异常分析:从异常提示信息中,可以知道属于验证异常从而导致的邮箱服务器连接异常那么可以从中分析出原因:1.用户名错误2.密码错误异常排除:使用测试的用户名和密码去登陆,将登陆成功的用户名和密码放入测试方法中,依然是上面的错误
5、开启客户端的授权密码从第四步中,可以知道用户名没有错误,那么只能是密码出错了,其原因是163邮件服务器存在另外的一个密码叫做客户端授权密码,而在邮件发送的工具类中的密码就是授权密码,所以需要登陆到163邮箱,开启客户端的授权密码,授权密码和登陆密码不能相同
6、查看是否收到邮件,核对发送的内容是否正确