学习用javamail发邮件的时候突然出现了一个异常javax.mail.AuthenticationFailedException: failed to connect at javax.mail.Service.connec
也就是连接失败的意思,其实是因为我们的发送邮箱没有开启pop3/smtp服务,
下图是搜狐邮箱的开启图,只要打勾就行,其他的邮件一样。
pop3,全称 post office protocal version3 用来收邮件的协议,中文名邮局协议第三版
smtp,全称 simple mail transfer protocal 用来发邮件的协议,中文名简单邮件传输协议
IMAP,全称 Internet message access protocal 用来收发的协议,因特尔消息访问协议
下面给大家看下代码吧
Demo1.java 记得包不要导错
package cn.edou.javamail;
import java.util.Properties;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.junit.Test;
public class Demo1 {
@Test
public void fun1() throws AddressException, MessagingException {
/*
* 1.得到Session
*/
Properties props = new Properties();
props.setProperty("mail.host", "smtp.sohu.com");
props.setProperty("mail.smtp.auth", "true");
javax.mail.Authenticator auth = new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("99678", "fafafa123456");
}
};
Session session = Session.getInstance(props, auth);
/*
* 2.创建MimeMessage对象
*/
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("99678@sohu.com")); // 设置发件人
msg.addRecipients(RecipientType.TO, "1656523286@qq.com"); // 设置多个收件人
// msg.addRecipients(RecipientType.CC, "1490999249@qq.com,6986231@qq.com"); // 设置抄送
// msg.addRecipients(RecipientType.BCC, "841266025@qq.com,1812095625@qq.com"); // 设置暗送
msg.setSubject("这是来自一个帅哥的javamail测试邮件");
msg.setContent("<html><body><h1 color=red>不要在意邮件的内容,因为我们是Administration</h1></html></body>",
"text/html;charset=utf-8");
/*
* 发送邮件
*/
// for (int i = 0; i < 100; i++) {
Transport.send(msg);
// }
}
}