spring - настроить электронную почту весны

Я использовал 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: нераспознанное сообщение SSL, открытое текстовое соединение?» Я протестировал эту конфигурацию с gmail на порту 465, и она сработала.

Пожалуйста, скажите мне, что я сделал неправильно. Спасибо


person robinmag    schedule 24.12.2009    source источник
comment
На этот вопрос есть ответ stackoverflow.com/questions/8917400/   -  person Yuriy Semen    schedule 08.10.2013


Ответы (3)


Похоже, ваш 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>
person maximdim    schedule 24.12.2009

Возможно, вам не следует использовать SSL. Настроен ли почтовый сервер на прием зашифрованных сообщений? Похоже, он хочет простой текст.

Я бы вернулся к справочным документам и посмотрите, сработает ли это.

person duffymo    schedule 24.12.2009
comment
Спасибо, я удалил эти свойства. - person robinmag; 24.12.2009
comment
Я удалил mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory mail.smtp.socketFactory.fallback=false, и это сработало - person Piyush; 10.09.2019

Я бы попробовал удалить все свойства javaMailProperties, а также свойства имени пользователя и пароля.

Как указывает duffymo, вам, вероятно, не следует использовать SSL (порт 25 — это SMTP-порт без SSL). Большинство SMTP-серверов также не требуют аутентификации (если только вы не настроили ее явно).

person Jack Leow    schedule 24.12.2009