无法在测试服务器中使用 Java 发送电子邮件

Cannot send email with Java in Test Server

我正在使用 Java 电子邮件发件人在 Java 中发送电子邮件。我正在使用 VelocityEngine 发送 HTML 电子邮件。

在我的本地计算机上一切正常!电子邮件已发送。

但是当我将代码部署到测试服务器(没有域相关,只有 IP)时,与 gmail 的连接失败。

我的电子邮件设置在 spring-config.xml

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="mail.domain.com" />
        <property name="port" value="25" />
        <property name="username" value="mymail@domain.com" />
        <property name="password" value="*xxxxxx" />

        <property name="javaMailProperties">
           <props>
                  <prop key="mail.smtp.auth">true</prop>
                  <prop key="mail.smtp.starttls.enable">false</prop>
                  <prop key="mail.smtps.ssl.checkserveridentity">true</prop>
                  <prop key="mail.smtps.ssl.trust">*</prop>
               </props>
        </property>
    </bean>

当我尝试从服务器发送电子邮件时出现错误:

org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: mail.domain.com, port: 25;

然后它说超时了。但我的问题是是否需要从电子邮件服务器禁用任何安全性或者它是否与 tomcat

相关

最后我能够在 spring-config

中使用 TLS 安全性解决这个问题

所以我只需要添加

<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.smtps.ssl.checkserveridentity">true</prop>
<prop key="mail.smtps.ssl.trust">*</prop>

并将端口更改为 587。

此致