3

メール クラスを実装し、プロパティ ファイルからすべての属性を取得しました。これが私のコードです:

static {
        // Load the properties file
        try {
            properties = new Properties();
            InputStream inputStream = Email.class.getClassLoader()
                    .getResourceAsStream("/mail.properties");
            properties.load(inputStream);`enter code here`
        } catch (Exception e) {
            logger.error(e.getMessage());
        }
    }

    /**
     * 
     * @param to
     *            : mail Sent to
     * @param from
     *            : mail sent from
     * @param subject
     *            : mail's subject
     * @param body
     *            : mail's body
     * @throws Exception
     */
    public static void sendTextMail(String to, String from, String subject,
            String body) throws Exception {

        if (properties.isEmpty()) {
            throw new Exception("Cannot  send mail. Host  data not available.");
        }

        // Authenticate the session with username and password
        Session session = Session.getInstance(properties, new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication((String) properties
                        .get("mail.login.username"), (String) properties
                        .get("mail.login.password"));
            }
        });

        // Create to and from addresses
        InternetAddress fromAddress = new InternetAddress(from);
        InternetAddress toAddress = new InternetAddress(to);

        // Create the message instance
        // and add the sender, recipient, subject and body.
        Message msg = new MimeMessage(session);
        msg.setFrom(fromAddress);
        msg.setSubject(subject);
        msg.setRecipient(RecipientType.TO, toAddress);
        msg.setContent(body, "text/plain");

        // Finally send the email
        Transport.send(msg);

    }

メールを送信しようとすると、次のエラーが発生しました: 16:48:23,882 ERROR AuthorController:1199 - SMTP ホストに接続できませんでした: smtp.gmail.com、ポート: 25 プロキシがサーバーをブロックしています。この問題を克服する方法

4

1 に答える 1

0

ほとんどの ISP は、ポート 25 での発信接続をブロックします。ただし、通常、暗号化されていない SMTP 通信にはポート 587 を使用できます。

使用するポートを変更するには、静的ブロックで設定した Properties インスタンスを調整できます。

...
properties.load(inputStream);
properties.put("mail.smtp.port", "587");
...

動作することを確認したら、/mail.propertiesファイルに設定を入れたいと思うかもしれません:

mail.smtp.port:587
于 2015-03-27T13:37:28.963 に答える