java测试163发送邮件 各种错误。。。奇怪了

神桐丶 2018-08-10 11:24:48

25端口是这种报错:

开始发送邮件
2018-08-10 23:10:55.696 ERROR 6080 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25;
nested exception is:
java.net.ConnectException: Connection refused: connect] with root cause

java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method) ~[na:1.8.0_71]
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) ~[na:1.8.0_71]
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_71]

465端口是这种报错 :


开始发送邮件
2018-08-10 23:22:23.178 ERROR 9756 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.mail.MailSendException; nested exceptions (1) are:
Failed message 1: com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp11,D8CowABH7B2krW1bA+WqDA--.13452S2 1533914542,please see http://mail.163.com/help/help_spam_16.htm?ip=115.231.11.12&hostid=smtp11&time=1533914542
] with root cause

org.springframework.mail.MailSendException: Failed messages: com.sun.mail.smtp.SMTPSendFailedException: 554 DT:SPM 163 smtp11,D8CowABH7B2krW1bA+WqDA--.13452S2 1533914542,please see http://mail.163.com/help/help_spam_16.htm?ip=115.231.11.12&hostid=smtp11&time=1533914542

at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:407) ~[spring-support-2.0.8.jar:2.0.8]
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:332) ~[spring-support-2.0.8.jar:2.0.8]
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:328) ~[spring-support-2.0.8.jar:2.0.8]


感觉好像不一样了 意思是用465端口就可以了??只是我存在其他错误?

这是我的代码:
JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
// 设定mail server
senderImpl.setHost("smtp.163.com");
senderImpl.setPort(465);
senderImpl.setUsername("xxxx@163.com"); // 根据自己的情况,设置发件邮箱地址
senderImpl.setPassword("yyyyy"); // 根据自己的情况, 设置password
senderImpl.setDefaultEncoding("UTF-8");
Properties prop = new Properties();
prop.put("mail.smtp.auth", "true"); // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
senderImpl.setJavaMailProperties(prop);

MimeMessage mailMessage = senderImpl.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);
// 设置收件人,寄件人
messageHelper.setTo("aaaaaaa@qq.com");
messageHelper.setFrom("xxxx@163.com");
messageHelper.setSubject("测试");
// true 表示启动HTML格式的邮件
messageHelper.setText(str, true);
senderImpl.send(mailMessage);
System.out.println("发送邮件结束");


...全文
378 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
雾里看花の 2018-08-13
  • 打赏
  • 举报
回复
引用 1 楼 genaro26 的回复:
楼主,你这样是不行的,光有邮箱账号和密码不能用Java发送邮件,你必须开通授权码,具体怎么开通授权码可以参照https://jingyan.baidu.com/article/adc815139f60c2f723bf7385.html或楼主自行百度。。。下面是Java实现代码:

public class EmailUtil {

public static boolean sendEmail(String toEmail, String title, String content){
boolean bret = false;
try {
SimpleEmail mail = new SimpleEmail();
// 设置邮箱服务器信息
mail.setSslSmtpPort("25");
mail.setHostName("smtp.163.com");
// 设置密码验证器
mail.setAuthentication("发送者邮箱账号", "邮箱授权码");
// 设置邮件发送者
mail.setFrom("发送者邮箱账号");
// 设置邮件接收者
mail.addTo(toEmail);
// 设置邮件编码
mail.setCharset("UTF-8");
// 设置邮件主题
mail.setSubject(title);
// 设置邮件内容
mail.setMsg(content);
// 设置邮件发送时间
mail.setSentDate(new Date());
// 发送邮件
mail.send();
} catch (Exception e) {
e.printStackTrace();
}
return bret;
}

}

这是网易邮箱的机制,他不允许通过邮箱账号和密码用Java发送邮件
雾里看花の 2018-08-13
  • 打赏
  • 举报
回复
楼主,你这样是不行的,光有邮箱账号和密码不能用Java发送邮件,你必须开通授权码,具体怎么开通授权码可以参照https://jingyan.baidu.com/article/adc815139f60c2f723bf7385.html或楼主自行百度。。。下面是Java实现代码:

public class EmailUtil {

public static boolean sendEmail(String toEmail, String title, String content){
boolean bret = false;
try {
SimpleEmail mail = new SimpleEmail();
// 设置邮箱服务器信息
mail.setSslSmtpPort("25");
mail.setHostName("smtp.163.com");
// 设置密码验证器
mail.setAuthentication("发送者邮箱账号", "邮箱授权码");
// 设置邮件发送者
mail.setFrom("发送者邮箱账号");
// 设置邮件接收者
mail.addTo(toEmail);
// 设置邮件编码
mail.setCharset("UTF-8");
// 设置邮件主题
mail.setSubject(title);
// 设置邮件内容
mail.setMsg(content);
// 设置邮件发送时间
mail.setSentDate(new Date());
// 发送邮件
mail.send();
} catch (Exception e) {
e.printStackTrace();
}
return bret;
}

}

81,114

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧