JavaMail发送邮件报错AuthenticationFailedException: 550 User has no permission
使用javax.mail的jar包进行163邮箱发送邮件,报错AuthenticationFailedException: 550 User has no permission。一、开启163邮箱的POP3/SMTP服务二、将163邮箱的登录密码修改为授权码163邮箱的登录密码是在163官方网站、客户端使用,授权码是在第三方的客户端使用。通过javax.mail发送邮件肯定不是163的官方...
·
使用javax.mail的jar包进行163邮箱发送邮件,报错AuthenticationFailedException: 550 User has no permission。
一、开启163邮箱的POP3/SMTP服务

二、将163邮箱的登录密码修改为授权码
163邮箱的登录密码是在163官方网站、客户端使用,授权码是在第三方的客户端使用。通过javax.mail发送邮件肯定不是163的官方客户端鸭!
三、检测一下代码问题
package cn.hestyle.bookstore.utils;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
*
* @author hestyle
*
* SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议
* 》SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器
* POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本
* 》POP3服务器则是遵循POP3协议的接收邮件服务器
*/
public class SendJMail {
private static final String smtpHost = "smtp.163.com";//163邮箱的smtp服务器地址
private static final String from = "he_style@163.com";//邮件发送人的邮件地址
private static final String username = "he_style@163.com";//发件人的邮件帐户
private static final String password = "xxxxx";//发件人的授权码
public static boolean sendMail(String email, String emailMsg) {
String to = email;// 邮件接收人的邮件地址
//定义Properties对象,设置环境信息
Properties props = System.getProperties();
//设置邮件服务器的地址
//指定的smtp服务器
props.setProperty("mail.smtp.host", smtpHost);
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");
//设置附件
//message.setDataHandler(dh);
//从session的环境中获取发送邮件的对象
Transport transport=session.getTransport();
//连接邮件服务器
transport.connect(smtpHost, 25, username, password);
//设置收件人地址,并发送消息
transport.sendMessage(message,new Address[]{new InternetAddress(to)});
transport.close();
return true;
} catch (MessagingException e) {
e.printStackTrace();
return false;
}
}
}
以上就是解决JavaMail的方法。
附上成功图:
控制台输出:

更多推荐




所有评论(0)