700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【腾讯云】记录一次Could not connect to SMTP host: smtp.163.com port: 25的解决办法

【腾讯云】记录一次Could not connect to SMTP host: smtp.163.com port: 25的解决办法

时间:2022-10-12 07:36:48

相关推荐

【腾讯云】记录一次Could not connect to SMTP host: smtp.163.com  port: 25的解决办法

问题描述

最近准备将一个项目发布到腾讯云,在本地所有的功能都能够实现的很好,但是一到腾讯云上面就出现了一个问题:

错误报告内容:Could not connect to SMTP host: , port: 25

翻译起来就是:不能连接到,因为25号端口的原因。

问题解决

这是因为腾讯云(阿里云)基于安全考虑,会禁用25端口。

下面是腾讯云的后台:

解决的办法有:

解封25号端口(不推荐);使用其他端口(465号端口,推荐)。

下面是163邮箱的截图:

也就是说,可以修改为:

public static void main(String[] args) throws Exception {Properties prop = new Properties();//协议prop.setProperty("mail.transport.protocol", "smtp");//服务器prop.setProperty("mail.smtp.host", "smtp.");//端口prop.setProperty("mail.smtp.port", "465");//使用smtp身份验证prop.setProperty("mail.smtp.auth", "true");//获取Session对象Session s = Session.getDefaultInstance(prop,new Authenticator() {//此访求返回用户和密码的对象@Overrideprotected PasswordAuthentication getPasswordAuthentication() {PasswordAuthentication pa = new PasswordAuthentication("***", "********");return pa;}});//设置session的调试模式,发布时取消s.setDebug(true);MimeMessage mimeMessage = new MimeMessage(s);try {mimeMessage.setFrom(new InternetAddress("***@"));mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("********@**.com"));//设置主题mimeMessage.setSubject("账户密码重置");mimeMessage.setSentDate(new Date());//设置内容mimeMessage.setText("您使用了密码重置功能");mimeMessage.saveChanges();//发送Transport.send(mimeMessage);} catch (MessagingException e) {e.printStackTrace();}}

更优的解决方案

在上面的腾讯云的后台上,写明了还有一个解决方案(推荐):腾讯企业邮箱

也就是说:我们可以使用域名作为邮箱的后缀!

比如:我的域名是,这样可以使用作为邮箱来进行发送邮件!

这是一个不错的操作,而且这个功能是免费的!

附上地址:腾讯企业邮箱。

接下来就是一堆注册等步骤。注册完之后,申请到了一个邮箱。

接下来,又一个问题出来了:

错误报告内容:535 Error: ÇëʹÓÃÊÚȨÂëµÇ¼(一堆乱码)

网上的解决办法都是说没有使用授权码!

大哥,用邮箱的SMTP功能我能不知道使用授权码嘛!!

最终关键点在于:发件人账号是个人免费邮箱时username可以不加@及其后面的,但是如果发件人账号是企业邮箱时,发件人账号必须加@及其后面的。

即个人免费邮箱可以如下:ms.setAuth("111111111","password1");

但是企业邮箱必须是这样:ms.setAuth("111111111@","password1");

也就是说:

public static void main(String[] args) throws Exception {Properties prop = new Properties();//协议prop.setProperty("mail.transport.protocol", "smtp");//服务器prop.setProperty("mail.smtp.host", "smtp.");//端口prop.setProperty("mail.smtp.port", "465");//使用smtp身份验证prop.setProperty("mail.smtp.auth", "true");//使用SSL,企业邮箱必需!//开启安全协议,如果出错显示类不存在,就更新mail的jar包MailSSLSocketFactory sf = null;try {sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);} catch (GeneralSecurityException e1) {e1.printStackTrace();}prop.put("mail.smtp.ssl.enable", "true");prop.put("mail.smtp.ssl.socketFactory", sf);//获取Session对象Session s = Session.getDefaultInstance(prop,new Authenticator() {//此访求返回用户和密码的对象@Overrideprotected PasswordAuthentication getPasswordAuthentication() {PasswordAuthentication pa = new PasswordAuthentication("message@", "********");return pa;}});//设置session的调试模式,发布时取消s.setDebug(true);MimeMessage mimeMessage = new MimeMessage(s);try {mimeMessage.setFrom(new InternetAddress("message@"));mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("********@**.com"));//设置主题mimeMessage.setSubject("账户密码重置");mimeMessage.setSentDate(new Date());//设置内容mimeMessage.setText("您使用了密码重置功能");mimeMessage.saveChanges();//发送Transport.send(mimeMessage);} catch (MessagingException e) {e.printStackTrace();}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。