【问题标题】:Could not connect to SMTP host - Spring MVC无法连接到 SMTP 主机 - Spring MVC
【发布时间】: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


【解决方案1】:

您的位置和 mailtrap.io 之间很可能有防火墙阻止了端口 25。端口 25 通常被阻止以阻止垃圾邮件。

尝试使用 mailtrap 支持的另一个端口,而不是 25(例如 2525)。

【讨论】:

    猜你喜欢
    • 2014-05-01
    • 1970-01-01
    • 2016-05-02
    • 2012-05-24
    • 2012-06-17
    • 2018-09-01
    • 1970-01-01
    相关资源
    最近更新 更多