使用Java的SimpleMailMessage发送邮件时,显示发件人的地址而非姓名

7

我使用org.springframework.mail包中的SimpleMailMessage发送邮件。但是在接收方显示发件人地址。我希望设置他的姓名。有什么方法可以做到这一点吗?SimpleMailMessage类中是否有可用的方法?我正在使用spring和hibernate。

代码

 public void sendmail(){
 String emailSubject = "Test Message";                                          
 String emailBody = "For testing";
 SimpleMailMessage simpleMailMessage = new SimpleMailMessage();     
 simpleMailMessage.setTo("sendermailid@gmail.com");
 simpleMailMessage.setCc("receivermailid@gmail.com");
 simpleMailMessage.setSubject(emailSubject);
 simpleMailMessage.setText(emailBody);
 mailSender.send(simpleMailMessage);
 }

5
你尝试过发送电子邮件至 My Name <myemail@gmail.com> 吗? - Jan Zahradník
我尝试了那段代码,但结果没有改变。 - Gayathri Rajan
3
发件人地址是通过setFrom设置的,在你的代码中我没有看到这个方法。你是否已经调用了setFrom(“我的名字<我的电子邮件>”) - Little Santi
2
非常感谢,它正在运行。 - Gayathri Rajan
2个回答

11

使用Spring的MimeMessageHelper设置发件人姓名和地址。

        MimeMessagePreparator mailMessage = mimeMessage -> {
            MimeMessageHelper message = new MimeMessageHelper(
                    mimeMessage, true, "UTF-8");

            message.setFrom(senderEmail, senderName);
            [...]
        };
        mailSender.send(mailMessage);

查看我的代码片段,请参见此答案中的链接


0

我遇到了一个问题,发件人的名称没有显示。

在我的Spring应用程序属性文件中,我拥有的属性是:

sender.email.address=Some Name <noreply@somedomain.com>

我尝试了很多选项,但都没有起作用,除了一个简单的连字符(-)。我只是在电子邮件地址中添加了一个连字符,如下所示,它就开始工作了:

sender.email.address=Some Name <no-reply@somedomain.com>

如果您有更好的解决方法,请告诉我,我愿意学习。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接