Как настроить Spring JavaMailSenderImpl для Gmail

Я пытаюсь найти, что корректные свойства используют для соединения с Gmail, SMTP разъединяет использование класса JavaMailSenderImpl.

Позвольте мне сначала сказать, что я попробовал подход, найденный здесь. Это хорошо работало. Но когда я попробовал конфигурацию ниже того сообщения с той же самой информацией аутентификации, я получил javax.mail. AuthenticationFailedException.

Мой в настоящее время конфигурация похож на это.


    
    
    
    
        smtp.gmail.com
        587
        true
        true
    
    

Почему я все еще получаю этот javax.mail. AuthenticationFailedException, если я знаю, что мои учетные данные корректны.

Обновление

Вот мой обновленный код на основе ответов ниже. Я все еще получаю то же исключение.


    
    
    
    
        XXX@gmail.com
        XXX@gmail.com
        XXX
        smtp.gmail.com
        587
        true
        true
    
    

38
задан Community 23 May 2017 в 10:31
поделиться

4 ответа

Кажется, что это не сильно отличается, но, возможно, попробуйте:

<bean id="mailSender" class ="org.springframework.mail.javamail.JavaMailSenderImpl" >
    <property name="username" value="XXX@gmail.com" />
    <property name="password" value="XXX" />
    <property name="javaMailProperties">
    <props>
        <prop key="mail.smtp.user" value="XXX@gmail.com" />
        <prop key="mail.smtp.password" value="XXX" />
        <prop key="mail.smtp.host">smtp.gmail.com</prop>
        <prop key="mail.smtp.port">587</prop>
        <prop key="mail.smtp.auth">true</prop>
        <prop key="mail.smtp.starttls.enable">true</prop>
    </props>
    </property>
</bean>
0
ответ дан 27 November 2019 в 03:38
поделиться

Вы должны указать ваш адрес "from", либо как XXX@gmail.com, либо при создании сообщения.

0
ответ дан 27 November 2019 в 03:38
поделиться

Единственное свойство, необходимое для GMail:

<prop key="mail.smtp.starttls.enable">true</prop>
4
ответ дан 27 November 2019 в 03:38
поделиться

Это сработало для меня:

        <property name="host"><value>smtp.gmail.com</value></property>
        <property name="port"><value>587</value></property>
        <property name="protocol"><value>smtp</value></property>
        <property name="username"><value>${mail.username}</value></property>
        <property name="password"><value>${mail.password}</value></property>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.starttls.enable">true</prop>
                <prop key="mail.smtp.quitwait">false</prop>
            </props>
        </property>

Настоящая хитрость для меня оказалась в том, что значение "протокола" должно быть "smtp" (а не "smtps").

33
ответ дан 27 November 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: