0

Java アプリケーションを開発しており、Javamail を使用してメールを送信しています。私のコードは次のとおりです。

Properties props = new Properties();
props.put("mail.smtp.host", "diana.cartif.es");
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("alerts","pass");
        }
    });

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

Transport.send(message);

ただし、このコードを実行すると、例外がスローされます。

javax.mail.MessagingException: Could not connect to SMTP host: diana.cartif.es, port: 465, response: -1
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1960)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642)
    at javax.mail.Service.connect(Service.java:317)
    at javax.mail.Service.connect(Service.java:176)
    at javax.mail.Service.connect(Service.java:125)
    at javax.mail.Transport.send0(Transport.java:194)
    at javax.mail.Transport.send(Transport.java:124)
    at com.cartif.data.MainConnection.getFTPConnection(MainConnection.java:106)
    at com.cartif.main.Main.connectToServer(Main.java:72)
    at com.cartif.main.Main.main(Main.java:60)

接続するデータは、メール サーバーで確認したので正しいです。誰か助けてくれませんか?

ありがとう!

4

3 に答える 3

0

おそらく次のようなことを試してください:

     String  d_email = "email",
             d_password = "pass";

    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.server");
    props.put("mail.smtp.user", d_email);
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.port", port);

    Authenticator auth = new SMTPAuthenticator();
    Session session = Session.getInstance(props, auth);
于 2012-06-05T12:49:28.847 に答える
0

socketFactory* プロパティを取り除きます。ほとんどの場合、それらはもう必要なく、追加します

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

電話してみてください:

session.setDebug(true);

そして、何か役に立つかどうかを確認してください。

自己署名証明書を使用している場合は、http ://www.oracle.com/technetwork/java/javamail145sslnotes-1562622.html を参照してください。

于 2012-06-06T04:37:05.527 に答える