java - 发送邮件时出现ssl异常

标签 java email email-client jakarta-mail

我正在尝试通过我的 Java 应用程序发送电子邮件。我正在尝试从托管服务提供商 (cyberhost.in) 提供的电子邮件帐户发送电子邮件。每当我运行该应用程序时,我都会收到 ssl 异常。

1)代码

public class Email {
    public static void main(String[] args) throws UnsupportedEncodingException {
        Properties props = new Properties();
        props.put("mail.smtp.host", "v1.cyberns.net");
        props.put("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.socketFactory.class",
                "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "465");

        Session session = Session.getDefaultInstance(props,
                new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication("admin@heyywassup",
                                "********");
                    }
                });

        try {

            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("admin@heyywassup.com",
                    "heyywassup"));
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse("amlan@ymail.com"));
            message.setSubject("Testing Subject");
            message.setText("Dear Mail Crawler,"
                    + "\n\n No spam to my email, please!");

            Transport.send(message);

            System.out.println("Done");

        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }
}

2)异常

>>>>>Sending data QUIT<<<<<<
Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
    at com.bean.Email.main(Email.java:47)
Caused by: javax.mail.MessagingException: javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: java.lang.RuntimeException: Could not generate DH keypair
    at org.apache.geronimo.javamail.transport.smtp.SMTPTransport.sendLine(SMTPTransport.java:1702)
    at org.apache.geronimo.javamail.transport.smtp.SMTPTransport.sendQuit(SMTPTransport.java:1459)
    at org.apache.geronimo.javamail.transport.smtp.SMTPTransport.close(SMTPTransport.java:732)
    at javax.mail.Transport.send(Transport.java:144)
    at javax.mail.Transport.send(Transport.java:48)
    at com.bean.Email.main(Email.java:42)

最佳答案

也许答案在 Java: Why does SSL handshake give 'Could not generate DH keypair' exception?帮助你。使用 Java 1.7.08 或更高版本应该可以解决问题。

关于java - 发送邮件时出现ssl异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16427785/

相关文章:

c# - 我如何使用 SendGridAPIClient 发送电子邮件。 Azure 网站

iphone - iOS 邮件客户端测试

html - 是否有任何常见的电子邮件客户端预取链接而不是图像?

java - 如何实现具有多个工作流程的项目?

for-loop - CICS 中 JVM 不受支持的版本

java - 为什么将 {a, b, c} 传递给方法不起作用?

java - 为什么我收到 javax.mail.AuthenticationFailedException?

java - Spring Boot 不起作用?

mailchimp - 在 MailChimp API 3.0 中检查一个电子邮件地址的多个列表

HTML电子邮件链接颜色困境