1

springmail を使用して、次の構成で smtp サーバーからメールを送信しました。

<bean id="springEmailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="defaultEncoding" value="UTF-8"/>
    <property name="host" value="mail.myserver.com"/>
    <property name="port" value="25"/>

    <property name="username" value="username"/>
    <property name="password" value="password"/>
    <property name="javaMailProperties">
        <value> 
            mail.debug=true 
            mail.smtp.auth=true
            mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
            mail.smtp.socketFactory.fallback=false 
        </value>
    </property></bean>

しかし、「javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?」がスローされます。ポート 465 で gmail を使用してこの構成をテストしたところ、機能しました。

私が間違ったことを教えてください。ありがとうございました

4

3 に答える 3

6

SMTPサーバーにはSSL(セキュア)接続が必要なようです。Gmail用に設定する方法の以下の例を参照してください。これにはSSLも必要です。smtpsプロトコルと追加のプロパティに注意してください。

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="smtp.gmail.com" />
    <property name="port" value="465" />
    <property name="protocol" value="smtps" />
    <property name="username" value="user"/>
    <property name="password" value="password"/>
    <property name="javaMailProperties">
        <props>
            <prop key="mail.smtps.auth">true</prop>
            <prop key="mail.smtps.starttls.enable">true</prop>
            <prop key="mail.smtps.debug">true</prop>
        </props>
    </property>
</bean>
于 2009-12-24T03:50:19.453 に答える
1

おそらく、SSL を使用するべきではありません。メール サーバーは、暗号化されたメッセージを受け入れるように構成されていますか? プレーンテキストが必要なようです。

参照ドキュメントに戻って、それが機能するかどうかを確認します。

于 2009-12-24T03:39:08.190 に答える
0

すべてのjavaMailPropertiesと、ユーザー名とパスワードのプロパティを削除してみます。

duffymoが指摘しているように、おそらくSSLを使用すべきではありません(ポート25は非SSL SMTPポートです)。ほとんどのSMTPサーバーも認証を必要としません(明示的に構成していない限り)。

于 2009-12-24T04:43:16.033 に答える