6

私は自分のプロジェクトで spring 3.1 を使用しており、メールを送信するために spring mail を使用しています。メールを送信しようとすると、常に次のエラーが発生します。

org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException: No authentication mechansims supported by both server and client

私のメールサーバーはユーザー名/パスワードを必要とせず、この事実によると、このエラーは正常なようです。しかし、そうです。spring mail の org.springframework.mail.javamail.JavaMailSenderImpl クラスでユーザー名/パスワードを渡さない方法が見つかりませんでした。

私の設定は:

<jee:jndi-lookup id="mailSession" jndi-name="${abc.app.mailSession}" cache="true"/>

    <bean id="jndiMailSender" class="com.abc.service.mail.JndiJavaMailService">
        <property name="session" ref="mailSession"/>
        <property name="defaultEncoding" value="${mail.defaultEncoding}"/>
        <property name="username" value="${abc.mail.username}"/>
        <property name="password" value="${abc.mail.password}"/>
        <property name="mailMasterAdress" value="${abc.mail.mailMasterAdress}"/>
    </bean>

メールサーバーは weblogic にあり、その構成は次のとおりです。

mail.smtp.host=10.200.123.135 mail.transport.protocol=smtp

何か案は?

4

8 に答える 8

35

次のプロパティを使用します。

mail.host=smtp.gmail.com
mail.port=587
mail.username=<gmail-username@gmail.com>
mail.password=<gmail-password>
mail.transport.protocol=smtp
mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.from.email=<gmail-username@gmail.com>

デフォルトでは、gmail は安全性の低いアプリの認証を許可しません。安全性の低いアプリが認証されるようにするには、Gmail アカウントのオプションをオンにする必要があります。

次の手順を実行します:

1.Login to Gmail. 
2.Access the URL as https://www.google.com/settings/security/lesssecureapps 
3.Select "Turn on"

コードをもう一度実行してみてください。動作するはずです。

于 2015-06-11T21:42:55.587 に答える
1

これは私のために働いた:

豆の構成

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="smtp.gmail.com" />
    <property name="port" value="587" />
    <property name="username" value="<!--Gmail ID -->" />
    <property name="password" value="<!-- Gmail Password -->" />

    <!-- The name of the property, following JavaBean naming conventions -->
    <property name="javaMailProperties">
        <props>
            <prop key="mail.transport.protocol">smtp</prop>
            <prop key="mail.smtp.auth">true</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.debug">true</prop>
        </props>
    </property>
</bean>

次に、安全性の低いアプリのアクセスを有効にする必要があります。

1. Login to Gmail. 
2. Access the URL as https://www.google.com/settings/security/lesssecureapps 
3. Select "Turn on"
于 2015-11-16T22:59:38.987 に答える