javax.mail.SendFailedException: Sending failed;
nested exception is:
class javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at com.hirain.sendmail.message.SendMail.sendMailOfValidate(SendMail.java:168)
at com.hirain.sendmail.message.SendMail.senMail(SendMail.java:196)
at com.hirain.sendmail.message.SendMail.main(SendMail.java:206)
nested exception is:
class javax.mail.AuthenticationFailedException
at javax.mail.Transport.send0(Transport.java:218)
at javax.mail.Transport.send(Transport.java:80)
at com.hirain.sendmail.message.SendMail.sendMailOfValidate(SendMail.java:168)
at com.hirain.sendmail.message.SendMail.senMail(SendMail.java:196)
at com.hirain.sendmail.message.SendMail.main(SendMail.java:206)
解决方案
10
你看下你的代码中能否用了Transport.send(msg)这样的方法
换成下面的试试:
Transport transport=session.getTransport();
transport.send(msg,new Address[]{new InternetAddress(“xxx@sina.com”)});
换成下面的试试:
Transport transport=session.getTransport();
transport.send(msg,new Address[]{new InternetAddress(“xxx@sina.com”)});
90
/**
* 邮件发送的方法
* @param to 收件人
* @param subject 主题
* @param content 内容
* @return 成功或失败
*/
public static boolean send(String to, String subject, String content){
// 第一步:创建Session
Properties props = new Properties();
//指定邮件的传输协议,smtp(Simple Mail Transfer Protocol 简单的邮件传输协议)
props.put("mail.transport.protocol", "smtp");
//指定邮件服务器
//props.put("mail.smtp.auth", "true");
props.put("mail.host","smtp.163.com");
//指定邮件的发送人(您用来发送邮件的服务器,例如您的163\sina等邮箱)
props.put("mail.from", "*******@163.com");
Session session = Session.getDefaultInstance(props);
// 开启调试模式
session.setDebug(true);
try {
// 第二步:获取邮件发送对象
Transport transport = session.getTransport();
// 连接邮件服务器,链接您的163、sina邮箱,用户名(不带@163.com,登录邮箱的邮箱账号,不是邮箱地址)、密码
transport.connect("*******", "*******");
// 第三步:创建邮件消息体
MimeMessage message = new MimeMessage(session);
//邮件的主题
message.setSubject(subject);
//邮件的内容
message.setContent(content, "text/html;charset=utf-8");
//邮件发送时间
message.setSentDate(new Date());
// 第四步:发送邮件
//第一个参数:邮件的消息体
//第二个参数:邮件的接收人,多个接收人用逗号隔开(test1@163.com,test2@sina.com)
transport.sendMessage(message, InternetAddress.parse(to));
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public static void main(String[] args) {
//您要发送给谁,标题,内容
send("*******@qq.com", "测试邮件", "你好你好你好你好你好你好你好你好");
}
这是之前写的一个工具类,刚才测试的时候竟然也报了553,查了一下说是要用客户端授权码登陆,你可以登上163邮箱去设置一下,改完之后用授权码登陆居然又变成了554错误,一看是当成垃圾邮件处理了,改了下标题成功。
ps:果然还是一个慢慢调试的过程,祝你成功