无法使用 SMTP 发送电子邮件(获取 javax.mail.MessagingException:无法将套接字转换为

2023-10-14Java开发问题
886

免费vpn下载 免费vpn vpn下载 免费vpn 本文介绍了无法使用 vpn下载 SMTP 发送电子邮件(获取 javax.mail.MessagingException:无法将套接字转换为 TLS;)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧! vpn下载 vpn下载 vpn free

问题描述

我已经编写了以下代码,用于使用 javamail API 通过 SMTP 作为 TLS 发送电子邮件,因为 SSL 不受支持,但我最终遇到了以下异常.请在下面查看我的代码.我使用了调试模式,在代码下面你也可以找到异常.

I have written the free vpn vpn下载 following code for sending email using javamail API through SMTP as TLS 免费vpn as SSL is not supported but I ended up 免费vpn with the following exception. Please see my code below. I have used debugging mode and below the code you can find the exception as well.

import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMailTLS {

   vpn free 免费vpn  public static void main(String[] args) 免费vpn下载 {

 免费vpn  免费vpn下载       final String username = "---------@mydomain.com";
        final String password vpn free = "***********";

     免费vpn    Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", "mail.mydomain.com");
      免费vpn   props.put("mail.smtp.debug", "true");
        props.put("mail.smtp.port", "587");

        Session session = Session.getInstance(props,
        vpn下载   new javax.mail.Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
       免费vpn          return new PasswordAuthentication(username, password);
            }
          });
        session.setDebug(true);

        try {

            Message message = new MimeMessage(session);
  免费vpn下载 vpn free           message.setFrom(new 
 vpn free  vpn下载                 InternetAddress("---------@mydomain.com"));
  vpn下载  vpn下载  vpn free  vpn下载     免费vpn下载    message.setRecipients(Message.RecipientType.TO,
            InternetAddress.parse("---------@mydomain.com"));
            message.setSubject("Testing 免费vpn Subject");
            message.setText("Dear Mail Crawler,"
                + "

 No spam vpn下载 to my email, please!");

        vpn free    vpn free  Transport.send(message);

        vpn free     System.out.println("Done");

        } catch (MessagingException e) {
   免费vpn下载          throw new RuntimeException(e);
        }
    }
}

异常跟踪

DEBUG: setDebug: JavaMail version 1.4.5
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth 免费vpn下载 true
DEBUG SMTP: trying to connect 免费vpn to host "mail.mydomain.com", port 587, isSSL false
220-cpanel35.per.syra.net.au ESMTP Exim 4.80 #2 Fri, 05 Oct 2012 17:28:56 +0800 
220-We do not authorize the use of this system to transport unsolicited, 
220 and/or bulk e-mail.
DEBUG SMTP: connected to host "mail.mydomain.com", port: 587

EHLO xxxxxx.xxxxx.com
250-cpanel35.per.syra.net.au Hello xxxx.xxxxx.com [xx.xx.xx.xxx]i
250-SIZE 52428800
250-8BITMIME
250-PIPELINING
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
DEBUG SMTP: Found extension "SIZE", arg "52428800"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG vpn free SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: 免费vpn Found extension "AUTH", arg "PLAIN LOGIN"
DEBUG SMTP: Found extension "STARTTLS", arg free vpn ""
DEBUG SMTP: Found extension "HELP", arg ""
STARTTLS
220 TLS go ahead
Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Could not convert socket vpn下载 to TLS;
  nested exception is:
 vpn free    javax.net.ssl.SSLException: java.lang.RuntimeException: Could not vpn下载 generate 免费vpn DH keypair
 free vpn    at SendMailTLS.main(SendMailTLS.java:52)
Caused by: javax.mail.MessagingException: Could not convert socket to TLS;
  nested exception free vpn is:
    javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH vpn下载 keypair
   免费vpn  at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1918)
   免费vpn  at 免费vpn vpn下载 vpn free com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:652)
    at 免费vpn下载 javax.mail.Service.connect(Service.java:317)
    at javax.mail.Service.connect(Service.java:176)
    at javax.mail.Service.connect(Service.java:125)
 vpn free    at javax.mail.Transport.send0(Transport.java:194)
    at javax.mail.Transport.send(Transport.java:124)
    at SendMailTLS.main(SendMailTLS.java:47)
Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
   free vpn vpn下载  at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
   vpn free free vpn  at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1868)
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1826)
   免费vpn  at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1809)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1328)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1305)
  vpn下载   at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:548)
    at vpn free com.sun.mail.util.SocketFetcher.startTLS(SocketFetcher.java:485)
    at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1913)
    ... 7 more
Caused by: java.lang.RuntimeException: Could not generate DH keypair
    at sun.security.ssl.DHCrypt.<init>(DHCrypt.java:123)
    at sun.security.ssl.ClientHandshaker.serverKeyExchange(ClientHandshaker.java:618)
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:202)
    at 免费vpn sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
  free vpn   at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:998)
   free vpn  at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1294)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1321)
    ... vpn free 11 more
Caused by: java.security.InvalidAlgorithmParameterException: Prime size vpn free must be multiple of 64, and can only range from 512 to 1024 (inclusive)
   免费vpn  at com.sun.crypto.provider.DHKeyPairGenerator.initialize(DHKeyPairGenerator.java:120)
   免费vpn  at java.security.KeyPairGenerator$Delegate.initialize(KeyPairGenerator.java:658)
    at vpn free sun.security.ssl.DHCrypt.<init>(DHCrypt.java:117)
    ... 免费vpn下载 18 more

谁能帮我调试一下?提前致谢!

Can anyone help me debug this? Thanks in advance!

推荐答案

我通过注释掉下面的属性解决了这个问题

I resolved this issue by just commenting out the below property

props.put("mail.smtp.starttls.enable", "true"); 

并且代码在没有错误或警告的情况下执行,或者只是从上面的源代码中删除这一行.到目前为止,它的作用就像一个魅力.

and the code got executed with vpn free no errors free vpn or vpn下载 warning or vpn free simply delete this line from the above source free vpn code. It is working like a charm till date.

这篇关于无法使用 SMTP 发送电子邮件(获取 javax.mail.MessagingException:无法将套接字转换为 TLS;)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

如何使用 JAVA 向 COM PORT 发送数据? vpn free
How to 免费vpn send data to vpn下载 COM PORT using JAVA?(如何使用 JAVA 向 免费vpn下载 COM PORT 免费vpn下载 发送数据?)...
2024-08-25 Java开发问题
21

如何使报表页面方向更改为“rtl"?
How to make free vpn a vpn下载 免费vpn report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)...
2024-08-25 Java开发问题
19

在 Eclipse 项目中使用西里尔文 .properties 文件
Use 免费vpn下载 cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 vpn下载 .properties 文件)...
2024-08-25 Java开发问题
18

有没有办法在 Java 中检测 RTL 语言?
Is there any way to detect an 免费vpn RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)...
2024-08-25 Java开发问题
11

如何在 Java 中从 DB 加载资源包消息?
How to load resource vpn下载 bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)...
2024-08-25 Java开发问题
13

如何更改 Java 中的默认语言环境设置以使其保持一致?
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)...
2024-08-25 Java开发问题
13