You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Mailtrap.io实现邮件发送时遇收件人地址缺失错误排查

解决Spring Boot邮件发送报错"No recipient addresses"的问题

你遇到的这个错误javax.mail.SendFailedException: No recipient addresses原因非常明确——你在构建邮件的时候没有指定收件人地址!

看你的sendVerificationEmail方法,你只设置了回复地址(setReplyTo)、发件人、邮件主题、发送时间和邮件内容,但完全漏掉了设置收件人的步骤。要注意:setReplyTo是用来指定收件人回复邮件时默认发送的地址,它和实际的邮件接收人(也就是你要发送验证邮件的用户邮箱)完全是两回事。

修复方法

只需要在MimeMessageHelper的配置里加上message.setTo(emailAddress);,把传入的用户邮箱设置为收件人即可:

修改后的sendVerificationEmail方法代码:

public void sendVerificationEmail(String emailAddress) {
    MimeMessagePreparator preparator = new MimeMessagePreparator() {
        @Override
        public void prepare(MimeMessage mimeMessage) throws Exception {
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
            message.setReplyTo(emailAddress);
            message.setFrom(new InternetAddress("socialnetworkmailsender@yandex.com"));
            // 新增这一行:设置收件人地址
            message.setTo(emailAddress);
            message.setSubject("Please Verify Your Email Address");
            message.setSentDate(new Date());
            message.setText("Hello there!");
        }
    };
    sendEmail(preparator);
}

另外补充一点:Spring的MimeMessageHelper还有重载的setTo方法可以传入多个收件人地址,不过这里你只需要单个收件人,用String参数的版本就足够了。

这个错误和你使用的SMTP服务(Mailtrap.io或者mailspons)无关,不管用哪个服务商,邮件都必须指定收件人才能发送成功。

内容的提问来源于stack exchange,提问作者JustQuest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 13:07:50