邮件发件人异常(使用mailtrap.io)

JustQuest

我正在尝试实现邮件发送功能(目前,我正在使用一些伪造的smtp),但我一直收到此错误:

    2020-09-19 00:20:38.209 DEBUG 880 --- [nio-8080-exec-5] o.s.web.servlet.DispatcherServlet        : Failed to complete request: org.springframework.mail.MailSendException: Failed messages: javax.mail.SendFailedException: No recipient addresses; message exceptions (1) are:
Failed message 1: javax.mail.SendFailedException: No recipient addresses
2020-09-19 00:20:38.217 ERROR 880 --- [nio-8080-exec-5] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.mail.MailSendException: Failed messages: javax.mail.SendFailedException: No recipient addresses; message exceptions (1) are:
Failed message 1: javax.mail.SendFailedException: No recipient addresses] with root cause

org.springframework.mail.MailSendException: Failed messages: javax.mail.SendFailedException: No recipient addresses
    at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:491) ~[spring-context-support-5.2.2.RELEASE.jar:5.2.2.RELEASE]
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:361) ~[spring-context-support-5.2.2.RELEASE.jar:5.2.2.RELEASE]
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:378) ~[spring-context-support-5.2.2.RELEASE.jar:5.2.2.RELEASE]
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:366) ~[spring-context-support-5.2.2.RELEASE.jar:5.2.2.RELEASE]
    at com.socialnetwork.service.EmailService.sendEmail(EmailService.java:26) ~[classes/:na]
    at com.socialnetwork.service.EmailService.sendVerificationEmail(EmailService.java:49) ~[classes/:na]
    at com.socialnetwork.controllers.AuthController.register(AuthController.java:50) ~[classes/:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Method.java:567) ~[na:na]

我的代码:

application.properties:

mail.enable=true
mail.smtp.host=smtp.mailtrap.io
mail.smtp.port=2525
mail.smtp.user=2be3af3d5134be
mail.smtp.pass=2c9ac24fa0808e

MailConfig.java

@Configuration
public class MailConfig {
    
    @Value("${mail.smtp.host}")
    private String host;
    
    @Value("${mail.smtp.port}")
    private Integer port;
    
    @Value("${mail.smtp.user}")
    private String username;
    
    @Value("${mail.smtp.pass}")
    private String password;
    
    @Bean
    public JavaMailSender mailSender() {
        
        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
        
        mailSender.setHost(host);
        mailSender.setPort(port);
        mailSender.setUsername(username);
        mailSender.setPassword(password);
        
        return mailSender;
    }
    
}

一切都从这里开始:

@RequestMapping(value = "/register", method=RequestMethod.POST)
ModelAndView register(ModelAndView modelAndView, @ModelAttribute(value="user") @Valid SiteUser user, BindingResult result) {
    
    modelAndView.setViewName("app.register");
    
    if(!result.hasErrors()) {
        userService.register(user);
        
        emailService.sendVerificationEmail(user.getEmail()); // STEP 1
        
        modelAndView.setViewName("redirect:/");
    }
    
    return modelAndView;
}   

EmailService.java

@Service
public class EmailService {
    
    @Autowired
    private JavaMailSender mailSender;
    
    @Value("${mail.enable}")
    private Boolean isMailEnabled;
    
    private void sendEmail(MimeMessagePreparator preparator) {
        if(isMailEnabled) {
            mailSender.send(preparator); // STEP 2
        }
    }
    
    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("[email protected]"));
                message.setSubject("Please Verify Your Email Address");
                message.setSentDate(new Date());
                
                message.setText("Hello there!");
                
            }
        };
        
        sendEmail(preparator);
    }
}

这些是我的课程,在此代码中我留下了2条评论:

步骤1:我想在用户完成注册后发送验证电子邮件。我正在接收他输入的电子邮件,并将该地址传递给'sendVerificationEmail'方法。

步骤2:到目前为止,一切似乎还不错,但是在控制台上出现此调用错误之后,我不明白为什么。

注意:除了mailtrap.io之外,我也尝试使用mailspons,但出现了同样的错误。

您知道我为什么会收到此错误吗?

JustQuest

我设法解决了该错误。

问题出在' sendVerificationEmail '方法之内。

而不是使用:

message.setReplyTo(emailAddress);

我需要使用:

message.setTo(emailAddress);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

socket.io仅将数据包发送给发件人

来自分类Dev

Socket.io仅向发件人发送回多个响应

来自分类Dev

使用“发送为”发送邮件或更改发件人

来自分类Dev

phpmailer更改邮件发件人

来自分类Dev

自动电子邮件发件人

来自分类Dev

Socket.io:发送到命名空间中的所有客户端(发件人除外)

来自分类Dev

如何连接“信封发件人”和“邮件发件人”邮件头?

来自分类Dev

在.net邮件“发件人”部分中使用变量名和电子邮件

来自分类Dev

将邮件从发件人移动到发件人的文件夹名称

来自分类Dev

通过邮件设置邮件发件人。在VBA中

来自分类Dev

使用Heroku + SendGrid时是否需要提供“发件人”电子邮件地址?

来自分类Dev

使用Excel VBA获取发件人的电子邮件地址

来自分类Dev

使用R中的Regex从文本正文中提取原始电子邮件发件人

来自分类Dev

SMTP:使用哪个“发件人”电子邮件地址?

来自分类Dev

未在使用JavaMail API发送的电子邮件中设置发件人

来自分类Dev

使用自定义发件人:字段发送电子邮件

来自分类Dev

使用Javascript清空CRM 2013中电子邮件实体中的“发件人”字段

来自分类Dev

如何使用Outlook或Exchange Online更改电子邮件标题中的“发件人:”字段?

来自分类Dev

使用VBA将发件人电子邮件追加到Outlook中附件的开头

来自分类Dev

java mail - 使用动态发件人电子邮件地址

来自分类Dev

使用 PHPmailer 向发件人和收件人发送邮件

来自分类Dev

使用 Redemption 获取发件人电子邮件地址的可靠方法

来自分类Dev

如何使用 PHPMailer 和 Google Apps 获得正确的“发件人”电子邮件地址?

来自分类Dev

如何使用Applescript从发件人应用程序中删除发件人包含电子邮件地址的会话

来自分类Dev

我收到一封电子邮件(gmail),如果发件人和收件人使用相同的域,如何知道发件人的 IP 地址

来自分类Dev

从苹果的邮件中获取“发件人”或发件人地址

来自分类Dev

发件人通知

来自分类Dev

不是通过symfony2选择发件人邮件

来自分类Dev

在Python中解析电子邮件的“发件人:”字段

Related 相关文章

  1. 1

    socket.io仅将数据包发送给发件人

  2. 2

    Socket.io仅向发件人发送回多个响应

  3. 3

    使用“发送为”发送邮件或更改发件人

  4. 4

    phpmailer更改邮件发件人

  5. 5

    自动电子邮件发件人

  6. 6

    Socket.io:发送到命名空间中的所有客户端(发件人除外)

  7. 7

    如何连接“信封发件人”和“邮件发件人”邮件头?

  8. 8

    在.net邮件“发件人”部分中使用变量名和电子邮件

  9. 9

    将邮件从发件人移动到发件人的文件夹名称

  10. 10

    通过邮件设置邮件发件人。在VBA中

  11. 11

    使用Heroku + SendGrid时是否需要提供“发件人”电子邮件地址?

  12. 12

    使用Excel VBA获取发件人的电子邮件地址

  13. 13

    使用R中的Regex从文本正文中提取原始电子邮件发件人

  14. 14

    SMTP:使用哪个“发件人”电子邮件地址?

  15. 15

    未在使用JavaMail API发送的电子邮件中设置发件人

  16. 16

    使用自定义发件人:字段发送电子邮件

  17. 17

    使用Javascript清空CRM 2013中电子邮件实体中的“发件人”字段

  18. 18

    如何使用Outlook或Exchange Online更改电子邮件标题中的“发件人:”字段?

  19. 19

    使用VBA将发件人电子邮件追加到Outlook中附件的开头

  20. 20

    java mail - 使用动态发件人电子邮件地址

  21. 21

    使用 PHPmailer 向发件人和收件人发送邮件

  22. 22

    使用 Redemption 获取发件人电子邮件地址的可靠方法

  23. 23

    如何使用 PHPMailer 和 Google Apps 获得正确的“发件人”电子邮件地址?

  24. 24

    如何使用Applescript从发件人应用程序中删除发件人包含电子邮件地址的会话

  25. 25

    我收到一封电子邮件(gmail),如果发件人和收件人使用相同的域,如何知道发件人的 IP 地址

  26. 26

    从苹果的邮件中获取“发件人”或发件人地址

  27. 27

    发件人通知

  28. 28

    不是通过symfony2选择发件人邮件

  29. 29

    在Python中解析电子邮件的“发件人:”字段

热门标签

归档