1

次のJavaプログラムを使用して、gmailアカウントからメールを送信します

final String username = "user@gmail.com";
final String password = "password";

Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");

Session session =
    Session.getInstance(props, new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }
    });

try {

    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress("user@gmail.com"));
    message.setRecipients(Message.RecipientType.TO,
                          InternetAddress.parse("user@live.in"));
    message.setSubject("Testing Subject");
    message.setText("Dear Bhavik Patel," +
                    "\n\n This is just a mail!");

    Transport.send(message);

    System.out.println("Done");

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

ポート587も試しましたが、機能していません

Transport.send(message); 

この実行で、接続して送信しようとします

何が悪いのかわかりません。私もtelnetを試しましたが、そこから接続できます

例外:

java.lang.RuntimeException: javax.mail.MessagingException: SMTP ホストに接続できませんでした: smtp.gmail.com、ポート: 465、応答: -1

4

3 に答える 3

0

次の JavaMail FAQ エントリを試してください。

starttls ではなく、「mail.smtp.ssl.enable」を設定する必要があります。

于 2013-09-05T20:36:54.597 に答える
0

私はポートを使用しており、587メールを送受信できます..または、プロパティを設定できます

mail.smtp.timeout25000に設定して、タイムアウト例外かどうかを試してください。

于 2013-09-05T06:40:58.123 に答える