1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com port: 465;

javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com port: 465;

时间:2022-09-13 17:16:37

相关推荐

javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com  port: 465;

1、报错信息如下:

trying to connect to host "", port 465, isSSL truejavax.mail.MessagingException: Could not connect to SMTP host: , port: 465;nested exception is:.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)at javax.mail.Service.connect(Service.java:295)at javax.mail.Service.connect(Service.java:176)at javax.mail.Service.connect(Service.java:196)at com.xnpool.smsServer.Tools.SendEmailUtils.sendEmail(SendEmailUtils.java:66)at com.xnpool.smsServer.controller.sms.SmsCodeServicerApi.sendEmail(SmsCodeServicerApi.java:151)at sun.reflect.GeneratedMethodAccessor109.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

2、代码

public class SendEmailRequest {/*** 接收地址*/private String email;/*** 邮件标题*/private String title;/*** 邮件内容*/private String content;/*** 主机地址* * */private String host;/*** 发送地址*/private String from;/*** 秘钥*/private String secrect;}@Slf4jpublic class SendEmailUtils {public static void sendEmail(SendEmailRequest request) {try {log.info(log.getName() + " 发送邮件请求参数【{}】", JSONObject.toJSONString(request));Properties properties = new Properties();properties.put("mail.transport.protocol", "smtp");// 连接协议properties.put("mail.smtp.host", request.getHost());// 163主机名properties.put("mail.smtp.port", 465);// 端口号properties.put("mail.smtp.auth", "true");properties.put("mail.smtp.ssl.enable", "true");//设置是否使用ssl安全连接 ---一般都使用properties.put("mail.debug", "true");//设置是否显示debug信息 true 会在控制台显示相关信息//得到回话对象Session session = Session.getInstance(properties);// 获取邮件对象Message message = new MimeMessage(session);//设置发件人邮箱地址message.setFrom(new InternetAddress(request.getFrom()));//设置收件人地址message.setRecipients(MimeMessage.RecipientType.TO, new InternetAddress[]{new InternetAddress(request.getEmail())});//抄送自己message.addRecipients(, InternetAddress.parse(request.getFrom()));//设置邮件标题message.setSubject(request.getTitle());//设置邮件内容message.setText(request.getContent());//得到邮差对象Transport transport = session.getTransport();//连接自己的邮箱账户transport.connect(request.getFrom(), request.getSecrect());//密码为刚才得到的授权码//发送邮件transport.sendMessage(message, message.getAllRecipients());transport.close();} catch (Exception e) {e.printStackTrace();}log.info(log.getName() + " 发送邮件发送成功【{}】", JSONObject.toJSONString(request));}}

3、问题解决

发现自己的邮箱设置:MAP/POP3 都已经开启,且都已经增加了授权码还报错,那就是正式环境JDK 的验证问题

which javals -lrt /usr/bin/javals -lrt /etc/alternatives/java

找到目录

/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security

修改java.security:不要SSL3,TLSv1, TLSv1.1

# dk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048jdk.tls.disabledAlgorithms=RC4, DES, MD5withRSA, \DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \include jdk.disabled.namedCurves

重启JAVA程序

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