2

私はSpringMVCアプリを作成しており、applicationContext.xmlで構成されているJavaMailを使用しています。

私はpostfixをセットアップし、それをmacosで実行しています。

メールコマンドラインプログラムを使用して、postfix経由でメールを送信できます。

ただし、JavaMailを介して電子メールを送信しようとすると、読み取りタイムアウトの例外が発生します。

http://www.rdpslides.com/webresources/FAQ00035_Send_Email_via_Telnet.htmで説明されているように、telnet経由で電子メールを送信しようとしましたが、SMTPがまったく応答しません。コマンドを入力することはできますが、何も起こりません。

メールコマンドラインクライアントを使用することの何が特別なのかわかりませんが、問題なく動作します。

つまり、これは機能します(mattは私のローカルユーザー名です):

$ date|mail -s testing matt

applicationContext.xml:

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">

    <property name="host" value="localhost"/>
    <property name="port" value="25"/>
    <property name="protocol" value="smtp"/>
    <property name="javaMailProperties">
        <props>
            <prop key="mail.debug">true</prop>
            <prop key="mail.debug.auth">true</prop>
            <prop key="mail.smtp.timeout">2000</prop>
            <prop key="mail.smtp.connectiontimeout">2000</prop>
        </props>
    </property>
</bean>

ありがとう。

4

1 に答える 1

0

"mail -v" でコマンド ライン テストを実行し、手がかりが得られるかどうかを確認してください。メール コマンドはおそらく sendmail をフォーク/実行しているため、locahost:25 経由で接続していません。後置構成を確認してください。telnet に接続しているように見えますが、接続ではなく読み取りでタイムアウトが発生しているため、postfix が何をしているのかわかりません。

于 2012-05-07T00:04:55.823 に答える