Javamail / Spring中mail.smtp.auth和mail.smtp.requiresAuthentication之间的区别是什么

时间:2014-03-24 22:52:04

标签: spring smtp javamail

我使用Spring 3.1.0使用JavaMailSenderImpl类发送电子邮件。 这是我的Spring config xml

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="your.mail.server"/>
    <property name="port" value="25"/>
    <property name="protocol" value="smtp"/>
    <property name="username" value=""/>
    <property name="password" value=""/>
    <property name="defaultEncoding" value="UTF-8"/>
    <property name="javaMailProperties">
        <props>
            <prop key="mail.smtp.auth">true</prop>
            <prop key="mail.smtp.connectiontimeout">5000</prop>
            <prop key="mail.smtp.sendpartial">true</prop>
            <prop key="mail.smtp.userset">true</prop>
            <prop key="mail.mime.charset">UTF-8</prop>
            <prop key="mail.smtp.isSecure">false</prop>
            <prop key="mail.smtp.requiresAuthentication">true</prop>
            <prop key="mail.smtp.port">25</prop>
            <prop key="mail.smtp.starttls.enable">false</prop>
            <prop key="mail.debug">true</prop>
        </props>
    </property>
</bean>

说实话,我不知道我从哪里得到了这些,可能是我从教程中得到的一些示例代码。

我想关闭SMTP身份验证,我可以从JavaMail docs看到我需要将 mail.smtp.auth 属性设置为false。但是在我的配置xml中,我还设置了一个名为 mail.smtp.requiresAuthentication 的属性,该名称似乎同样相关,但我无法在JavaMail或Spring文档中找到对它的任何引用。然而,谷歌确实发现了很多使用它的例子。

实际需要 mail.smtp.requiresAuthentication ,如果是,它会做什么?它可能是一个被弃用的,甚至是虚假的财产吗?

1 个答案:

答案 0 :(得分:0)

在剪切和粘贴之前,你真的应该理解代码......

JavaMail中没有mail.smtp.requiresAuthentication属性。

我对Spring如何使用JavaMail一无所知,但在JavaMail中如果您不想进行身份验证,请不要调用提供用户名和密码的connect方法,或者将用户名和密码传递为null mail.smtp.auth设置为false。如果你使用username或password调用connect not null,则mail.smtp.auth设置为什么并不重要。