无法通过SMTP,Java向海外发送电子邮件

时间:2019-03-19 07:38:19

标签: java spring smtp

我很困惑,陷入了我的项目。

我想通过SMTP JAVA将电子邮件发送到海外电子邮件地址,但收到超时消息。

我不知道为什么。

我的配置xml:

    <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="smtp.gmail.com" />
        <property name="port" value="25" />
        <property name="username" value="testing@gmail.com" />
        <property name="password" value="password" />

        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.starttls.enable">true</prop>
            </props>
        </property>

    </bean>

    <bean id="emailService" class="com.dwidasa.iacssweb.service.feature.EmailService">
        <property name="mailSender" ref="mailSender" />
        <property name="simpleMailMessage" ref="customeMailMessage" />
    </bean>

    <bean id="customeMailMessage"
        class="org.springframework.mail.SimpleMailMessage">

        <property name="subject" value="RESET PASSWORD" />
        <property name="text">
        <value>
            <![CDATA[
Dear %s,
%s
            ]]>
        </value>
    </property>
    </bean>


</beans>

请帮助我,没有错误,只是连接超时。我很困惑,因为当我在本地服务器上测试时,它成功了。

错误:

  

原因:

     

org.springframework.mail.MailSendException:邮件服务器连接   失败嵌套的异常是javax.mail.MessagingException:无法   连接到SMTP主机:smtp.dwidasa.com,端口:587;嵌套异常   是:java.net.ConnectException:连接超时(连接超时   出来)。失败消息:javax.mail.MessagingException:无法   连接到SMTP主机:smtp.dwidasa.com,端口:587;嵌套异常   是:java.net.ConnectException:连接超时(连接超时   出);消息异常的详细信息(1)是:

1 个答案:

答案 0 :(得分:0)

尝试使用端口:587并为javaMailProperties添加以下属性

type TrainsState[A] = State[Map[TrainId, Train], A]

class StateTrainRepository extends TrainRepository[TrainsState] {
  override def get(trainId: TrainId): TrainsState[Option[Train]] = State.inspect(_.get(trainId))

  override def getAll: TrainsState[List[Train]] = State.inspect(_.values.toList)

  override def save(train: Train): TrainsState[Train] =
    State.modify[Map[TrainId, Train]](m => m + (train.id -> train)) *> State.pure(train)
}