【发布时间】:2019-05-20 12:46:36
【问题描述】:
我正在尝试使用 Spring MVC 发送电子邮件。 但是每次我运行我的代码时都会抛出一个错误:
嵌套异常是: java.net.ConnectException:连接被拒绝:连接。失败消息:javax.mail.MessagingException:无法连接到 SMTP 主机:smtp.mailtrap.io,端口:25; 嵌套异常是: java.net.ConnectException:连接被拒绝:连接;消息异常 (1) 是: 失败消息 1:javax.mail.MessagingException:无法连接到 SMTP 主机:smtp.mailtrap.io,端口:25;
我的代码示例:
dispatcher-servlet.xml
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.mailtrap.io"/>
<property name="port" value="25"/>
<property name="username" value="30f4d***44754"/>
<property name="password" value="16a83***17add6"/>
<property name="javaMailProperties">
<props>
<prop key="mail.transport.protocol">smtp</prop>
<prop key="mail.smtp.auth">true</prop>
</props>
</property>
</bean>
控制器类:
@Autowired
private JavaMailSender mailSender;
@RequestMapping(value = "/emailForm",method = RequestMethod.GET)
public String doSendEmail() {
SimpleMailMessage email = new SimpleMailMessage();
email.setTo("key@wp.pl");
email.setSubject("LOL");
email.setText("heh");
// sends the e-mail
mailSender.send(email);
// forwards to the view named "Result"
return "Result";
}
我知道该方法应该是 POST,但我只想测试它,所以我只是做了 GET。 当我在 SMTP 测试工具中检查我的道具时,它可以工作。仅在代码中不起作用。
【问题讨论】:
-
查看你的 25 端口是否还没有被任何东西使用/打开。
netstat -aon | findstr 25。通过taskkill /F /PID {process_id}终止正在使用它的任何进程。检查您是否正在运行邮件服务器,您可能需要指定邮件服务器的登录名。最简单的测试将运行FakeSmtp[nilhcem.com/FakeSMTP/] 以查看您的代码是否有效。
标签: java spring email authentication