问题描述
我已经编写了以下代码,用于使用 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;)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构免费vpn源码(带手机端)
高端HTML5响应式企业集团通用类免费vpn织梦模板(自适应手机端)