我试图用Amazon的SES/SMTP发送电子邮件,并收到以下错误:
javax.mail.MessagingException:无法连接SMTP主机:电子邮件-smtp.us-East-1.amazonaws.com,端口: 465,响应:-1
以下是我试图发送邮件的方式:
Spring邮件发件人配置:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${mail.server}"/>
<property name="port" value="${mail.port}"/>
<property name="username" value="${aws.mail.smtp.user}"/>
<property name="password" value="${aws.mail.smtp.password}"/>
<property name="javaMailProperties">
<props>
<!-- Use SMTP-AUTH to authenticate to SMTP server -->
<prop key="mail.smtp.auth">true</prop>
<!-- Use TLS to encrypt communication with SMTP server -->
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>通过以下方式:
mail.server =email-smtp.us-east-1.amazonaws.com
mail.port = 465发布于 2011-12-24 07:29:21
对于amazon,配置需要如下:
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.ssl.enable">true</prop>而不是:
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop> 正如戴夫暗示的那样。
编辑:请使用此解决方案:https://stackoverflow.com/a/8928559/536299
发布于 2011-12-22 15:13:46
Amazon在SMTP会话之前需要SSL。SES不支持StartTLS命令。
发布于 2014-02-09 00:34:18
这些设置适用于我:
mail.smtp.host=email-smtp.us-east-1.amazonaws.com mail.transport.protocol=smtp mail.smtp.port=25 mail.smtp.auth=true mail.smtp.starttls.enable=true mail.smtp.starttls.required=true mail.smtp.user=SMTP用户名mail.smtp.password=SMTP用户密码
如果您试图使用SSL连接进行连接,则它拒绝此连接。所以你需要在连接后做STARTTLS。
您可以添加mail.debug=true以查看其失败的位置。
发件人的电子邮件地址必须是一个经过验证的电子邮件地址,否则SES拒绝转发电子邮件。
https://stackoverflow.com/questions/8593303
复制相似问题