Java spring-config-spring电子邮件

Java spring-config-spring电子邮件,java,spring,email,jakarta-mail,Java,Spring,Email,Jakarta Mail,我使用springmail从smtp服务器发送电子邮件,配置如下: <bean id="springEmailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="defaultEncoding" value="UTF-8"/> <property name="host" value="mail.myserver.com"/>

我使用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>

mail.debug=true
mail.smtp.auth=true
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.socketFactory.fallback=false
但它抛出“javax.net.ssl.SSLException:无法识别的ssl消息,纯文本连接?” 我已经在465端口用gmail测试了这个配置,它成功了


请告诉我我做错了什么。谢谢

也许你不应该使用SSL。邮件服务器是否配置为接受加密邮件?看起来它需要纯文本


我会回到,看看这是否有效。

也许你不应该使用SSL。邮件服务器是否配置为接受加密邮件?看起来它需要纯文本


我将返回,看看这是否有效。

看起来您的SMTP服务器需要SSL(安全)连接。请参阅下面的示例,了解如何为Gmail配置它,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>

真的
真的
真的

您的SMTP服务器似乎需要SSL(安全)连接。请参阅下面的示例,了解如何为Gmail配置它,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>

真的
真的
真的

我会尝试删除所有javaMailProperties,以及用户名和密码属性

<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>

正如duffymo指出的,您可能不应该使用SSL(端口25是非SSL SMTP端口)。大多数SMTP服务器也不需要身份验证(除非您明确配置了身份验证)。

我会尝试删除所有javaMailProperties以及用户名和密码属性

<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>

正如duffymo指出的,您可能不应该使用SSL(端口25是非SSL SMTP端口)。大多数SMTP服务器也不需要身份验证(除非您明确配置了身份验证)。

谢谢,我已经删除了这些属性mail.SMTP.socketFactory.class=javax.net.ssl.SSLSocketFactory-mail.SMTP.socketFactory.fallback=false,但它给了我另一个例外:MessaginException:[EOF]我删除了mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory-mail.smtp.socketFactory.fallback=false,它成功了谢谢,我删除了mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory-mail.smtp.socketFactory.fallback=false的这些属性,但它给了我另一个例外:MessaginException:[EOF]我删除了mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory-mail.smtp.socketFactory.fallback=false,并且成功了此问题有答案此问题有答案