13

Amazon の SES/SMTP でメールを送信しようとしていますが、次のエラーが表示されます。

javax.mail.MessagingException: SMTP ホストに接続できませんでした: email-smtp.us-east-1.amazonaws.com、ポート: 465、応答: -1

これが私がメールを送信しようとしている方法です:

春のメール送信者の設定:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="${mail.server}"/>
        <property name="port" value="${mail.port}"/>
        <property name="username" value="${aws.mail.smtp.user}"/>
        <property name="password" value="${aws.mail.smtp.password}"/>
        <property name="javaMailProperties">
            <props>
            <!-- Use SMTP-AUTH to authenticate to SMTP server -->
            <prop key="mail.smtp.auth">true</prop>
            <!-- Use TLS to encrypt communication with SMTP server -->
            <prop key="mail.smtp.starttls.enable">true</prop>  
            </props>    
        </property>
    </bean>

と:

mail.server =email-smtp.us-east-1.amazonaws.com
mail.port = 465
4

7 に答える 7

15

Amazon SES では、次のように構成する必要があります。

<prop key="mail.smtp.auth">true</prop>    
<prop key="mail.smtp.ssl.enable">true</prop>

それ以外の:

<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop> 

デイブが示唆したように。

編集: このソリューションを使用してください: https://stackoverflow.com/a/8928559/536299

于 2011-12-24T07:29:21.593 に答える
4

Amazon SES SMTP では、SMTP セッションの前に SSL が必要です。StartTLS コマンドは、SES ではサポートされていません。

于 2011-12-22T15:13:46.353 に答える
2

これらの設定は私のために働いた:

mail.transport.protocol=smtp
mail.smtp.port=25
mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.starttls.required=true
mail.smtp.host=email-smtp.us-east-1.amazonaws.com
mail.smtp.user=[SMTP username]
mail.smtp.password=[SMTP user password]

SSL 接続を使用して接続しようとすると、接続が拒否されました。したがって、接続後に STARTTLS を実行する必要があります。

mail.debug=true を追加して、失敗した場所を確認できます。

送信者の電子メール アドレスは、検証済みの電子メール アドレスでなければなりません。そうでない場合、SES は電子メールの転送を拒否します。

于 2014-02-09T00:34:18.397 に答える
0

https://forums.aws.amazon.com/message.jspa?messageID=218303のAWSノートは、メールメッセージの機密性を維持するためのサーバー間通信の暗号化について言及しており、すべてのSMTPサービスに共通の特徴であることに注意してください。 。

この質問は、AWS SMTPサーバーへの安全な接続を使用して、AWSサーバーでの認証に使用されるパスワードを保護することに関するものです。

于 2012-02-16T15:43:20.403 に答える
0
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.host", "email-smtp.us-east-1.amazonaws.com");
props.setProperty("mail.user", "your_ses_user");
props.setProperty("mail.password", "your_ses_pwd");



Session mailSession = Session.getDefaultInstance(props, new Authenticator(){
    public PasswordAuthentication getPasswordAuthentication() {
        String username = "your_ses_user";
        String password = "your_ses_pwd";
        return new PasswordAuthentication(username, password);
    }
});

これらのコードはテスト済みで、正常に機能します。SMTP over SSLを使用する場合は、次のように構成してください。

props.setProperty("mail.smtp.starttls.enable", "true");

または、ここからAWSJavaSDKをダウンロードできます。

コードサンプルはこちら

于 2013-02-18T06:23:30.720 に答える
0

AWS のこの従業員は、SES は SSL をまったくサポートしていないと述べています。 https://forums.aws.amazon.com/message.jspa?messageID=218303 .

Amazon SES は Transport Layer Security を有効にして E メールを送信しようとしますが、メッセージが TLS で送信されることを保証する方法はありません。SES は、電子メールの送信時に日和見 TLS を使用します。つまり、最初に TLS 経由で電子メールを送信しようとし、TLS が利用できない場合は通常の SMTP にフォールバックします。

したがって、あなたが目にしている問題は TLS や SSL に関連したものではなく、別の問題であると考えています。

于 2012-01-25T03:30:46.880 に答える