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:果然还是一个慢慢调试的过程,祝你成功