1

Apache Commons の電子メール ライブラリが機能するように、この例を取得しようとしています。これが私のコードです:

    SimpleEmail email = new SimpleEmail();      
    email.setHostName("smtp.gmail.com");
    email.setSmtpPort(465);
    email.setAuthenticator(new DefaultAuthenticator("username@gmail.com", "password"));     
    email.setTLS(true); 
    try {
        email.setFrom("username@gmail.com");
        email.setSubject("TestMail");
        email.setMsg("This is a test mail ... :-)");
        email.addTo("username@gmail.com");
        System.out.println("Sending...");
        email.send();
        System.out.println("Email sent!");

    } catch (Exception e) {
        System.out.println("Email not sent!");
        e.printStackTrace();
    }

ご覧のとおり、基本的に例から変更されていませんが、587 は例外を引き起こすため(この質問Connection refusedに基づいて)、587 の代わりにポート 465 を使用する必要があります。現在、このコードは保留中です。私が得る唯一の出力は次のとおりです。email.send()

Sending...

ただし、例外はスローされません。ファイアウォールでポートを開く必要がありますか? (仕事でやろうとしているので、できないかもしれません。)ありがとう!

編集

長い間、私はこの例外を受け取ります:

org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:465
...
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1
4

2 に答える 2

1

あなたの編集と私のコメントへの回答に基づいて、問題を Java コードではなく、ファイアウォールまたはネットワーク構成で探す必要があります。

于 2011-09-29T15:44:53.840 に答える