Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将自定义SSLSocketFactory类与org.springframework.mail.javamail.JavaMailSenderImpl一起使用_Spring_Email_Ssl_Jakarta Mail - Fatal编程技术网

如何将自定义SSLSocketFactory类与org.springframework.mail.javamail.JavaMailSenderImpl一起使用

如何将自定义SSLSocketFactory类与org.springframework.mail.javamail.JavaMailSenderImpl一起使用,spring,email,ssl,jakarta-mail,Spring,Email,Ssl,Jakarta Mail,我需要使用自定义SSLFactory类来避免邮件服务器上的自签名证书出现问题。我正在尝试使用下一个配置,它可以很好地用于gmail。但是,如果我切换到邮件服务器,它将不再工作,在wireshark中我会发现错误TLSv1记录层:警报(级别:致命,说明:证书未知)。我尝试设置自定义sslfactory(替换javax.net.ssl.SSLSocketFactory),但看起来此更改不会影响JavaMailSenderImpl的行为 邮件服务器支持smtps协议,需要身份验证 <bean i

我需要使用自定义SSLFactory类来避免邮件服务器上的自签名证书出现问题。我正在尝试使用下一个配置,它可以很好地用于gmail。但是,如果我切换到邮件服务器,它将不再工作,在wireshark中我会发现错误TLSv1记录层:警报(级别:致命,说明:证书未知)。我尝试设置自定义sslfactory(替换javax.net.ssl.SSLSocketFactory),但看起来此更改不会影响JavaMailSenderImpl的行为

邮件服务器支持smtps协议,需要身份验证

<bean id="userAuthorizationManager" class="com.mypackage.manage.SimpleUserAuthorizationManagerImpl">
    <property name="mailSender" ref="mailSender" />
    <property name="velocityEngine" ref="velocityEngine" />
    <property name="from" value="address" />
    <property name="authorizationAddress" value="some text" />
    <property name="subject" value="some text" />
</bean>

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="smtp.gmail.com" />
    <property name="port" value="465" />
    <property name="username" value="user" />
    <property name="password" value="pass" />
    <property name="protocol" value="smtps" />

    <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">true</prop>
            <prop key="mail.smtp.requiresAuthentication">true</prop>
            <prop key="mail.smtp.port">465</prop>
            <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
            <prop key="mail.smtp.socketFactory.fallback">false</prop>
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.debug">true</prop>
        </props>
    </property>
</bean>

<bean id="velocityEngine"
        class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
    <property name="velocityProperties">
        <value>
            resource.loader=class
                class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
        </value>
    </property>
</bean>

真的
5000
真的
真的
UTF-8
真的
真的
465
javax.net.ssl.SSLSocketFactory
假的
真的
真的
resource.loader=class
class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
如果你还需要什么,我很乐意提供

我们将非常感谢您的帮助

问候,,
最后我找到了一个解决办法。我犯了一个错误

我在属性的键名中使用了smtp,而不是stmps,而我使用了smtps作为协议,正如您在我的问题中看到的那样

问候,, 提奥