2012-01-18 11 views
14

私たちは、SMTPを使用してAmazonのSESサービスと連携する春JavaMailSenderを設定しようとしているが、我々はこのエラーを取得していますSMTPを使用してSpring JavaMailSenderをSES用に設定するにはどうすればよいですか?

javax.mail.MessagingException: Could not connect to SMTP host: email-smtp.us-east-1.amazonaws.com, port: 465, response: -1 

これが私たちの設定です:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
    <property name="host" value="email-smtp.us-east-1.amazonaws.com" /> 
    <property name="port" value="465" /> 
    <property name="username" value="..." /> 
    <property name="password" value="..." /> 
    <property name="javaMailProperties"> 
     <props> 
      <prop key="mail.smtp.auth">true</prop> 
      <prop key="mail.smtp.ssl.enable">true</prop> 
     </props> 
    </property> 
</bean> 

間違っている可能性がどのような任意のアイデア?前もって感謝します。

PS:私たちは既にここで解決策を試しました:Could not connect to SMTP host: email-smtp.us-east-1.amazonaws.com, port: 465, response: -1運がありません。

答えて

35

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
    <property name="host" value="email-smtp.us-east-1.amazonaws.com" /> 
    <property name="port" value="465" /> 
    <property name="protocol" value="smtps" /> 
    <property name="username" value="..." /> 
    <property name="password" value="..." /> 
    <property name="javaMailProperties"> 
     <props> 
      <prop key="mail.smtps.auth">true</prop> 
      <prop key="mail.smtp.ssl.enable">true</prop> 
      <prop key="mail.transport.protocol">smtps</prop> 
     </props> 
    </property> 
</bean> 

<property name="protocol" value="smtps" />設定を忘れてはいけない、または他のjavaMailPropertiesが考慮されていない:これは私のために働いた完全な設定です。

+0

これは良い応答です。私はあなたのJavaクラス内からプロトコルを設定しようとしているならば、 'mailSender.setProtocol(" smtps ")' – eugene

14

私はちょうど同じ問題に遭遇しました。実は、私は数週間前にそれを解決しようとしたと捕まってしまった...私は、問題を特定するために、やった

まず最初:メールAPIのデバッグモードを有効に

<props> 
    ... 
    <prop key="mail.debug">true</prop> 
</props> 

これは、私を示しました。それは実際に

DEBUG SMTP: trying to connect to host "email-smtp.us-east-1.amazonaws.com", port 465, isSSL false 

私の同僚が本当にSSL

<props> 
    ... 
    <prop key="mail.transport.protocol">smtps</prop> 
    ... 
</props> 
を使用するために別のメールプロパティが含まれるように、指摘SSLを使用しないこと

この値を追加した後、 "isSSL"値がtrueに変更されましたが、別のエラーが指摘されました。もちろん、その旅の後

<prop key="mail.smtps.auth">true</prop> 

にプロパティに

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

を変更し、それが最終的に働いた、理由によって固定することができ、プロトコルの変更により、もはや認証を使用しません。

:ちょうど正しいの特性を要約する...

有用だった私

:-)ホープ@GuCoの回答に基づいて
<props> 
    <prop key="mail.smtps.auth">true</prop> 
    <prop key="mail.smtp.ssl.enable">true</prop> 
    <prop key="mail.transport.protocol">smtps</prop> 
</props> 
+0

あなたの答えをありがとう。私はそれを試して、私はまだこれを見ています: 'DEBUG SMTP:ホストに接続しようとしています" email-smtp.us-east-1.amazonaws。COM」、ポート465、isSSLは をは 'false'私のconfには、次のようになります。 ' <豆ID = "MailSenderの" クラス= "org.springframework.mail.javamail.JavaMailSenderImpl"> ... \t <プロパティ名= "javaMailProperties"> \t \t \t \t \t <>真のkey = "mail.smtps.auth" を支える \t \t \t <支えるキー=> "mail.smtp.ssl.enable" 真 \t \t \t SMTPS \t \t \t <キー=小道具" \t \t \t ' 任意の提案真> mail.debugを"? – rreyes1979

2

このコードは、私のために働いている:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
    <property name="host" value="email-smtp.us-east-1.amazonaws.com" /> 
      <!--Obtaining Your Amazon SES SMTP Credentials. use http://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html--> 
    <property name="username" value="smtp user name" /> 
    <property name="password" value="smtp password" /> 
    <property name="javaMailProperties"> 
     <props> 
      <prop key="mail.smtp.auth">true</prop> 
      <prop key="mail.transport.protocol">smtp</prop> 
      <prop key="mail.smtp.port">25</prop> 
      <prop key="mail.smtp.starttls.enable">true</prop> 
      <prop key="mail.smtp.starttls.required">true</prop> 
      <prop key="mail.smtp.from">[email protected]</prop> 
     </props> 
    </property> 
</bean> 
+0

ありがとう!それは私のために働いた。 – praveen

1

あなたが@Beanを使用したい場合は、次のことが私の仕事:

@Bean 
public MailSender mailSender() { 
    JavaMailSenderImpl mailSender = new JavaMailSenderImpl(); 
    mailSender.setHost("email-smtp.eu-west-1.amazonaws.com"); 
    mailSender.setUsername("..."); 
    mailSender.setPassword("..."); 
    mailSender.setPort(465); 
    mailSender.setProtocol("smtps"); 

    // This can be very helpful 
    Properties properties = new Properties(); 
    properties.setProperty("mail.debug", "true"); 
    mailSender.setJavaMailProperties(properties); 

    return mailSender; 
} 
1

この質問はかなり古いですが、場合に誰かが必要春のブート設定、これは私のために働いた:

mail: 
    host: email-smtp.us-west-2.amazonaws.com 
    port: 465 
    username: <username> 
    password: <pwd> 

    properties: 
     mail.smtp.auth: true 
     mail.smtp.starttls.enable: true 
     mail.smtp.starttls.required: true 
     mail.smtp.ssl.enable: true 
     mail.transport.protocol: smtps 
     mail.smtp.from: [email protected] 
関連する問題