spring-boot - Spring/Java Mail:发件人始终是 spring.mail.username。FROM 地址被忽略
问题描述
我使用SimpleMailMessage
. 一切运行良好。但我不知道为什么在接收方显示spring.mail.username's
地址而不是发件人地址。每封邮件都发送到正确的地址,但来自在属性 spring.mail.username 中创建的地址邮件将使用什么方法?类中有没有可用的方法SimpleMailMessage
?
resources/application.properties
spring.mail.host = smtp.gmail.com
spring.mail.port=587
spring.mail.username = ***@otherdomain
spring.mail.password = ***
spring.mail.properties.mail.smtp.auth = true
spring.mail.properties.mail.smtp.starttls.enable=true
代码
private JavaMailSender javaMailSender;
public EmailService(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
public void sendMail(String fromEmail,String toEmail, String subject, String message) {
var mailMessage = new SimpleMailMessage();
mailMessage.setFrom(fromEmail);
mailMessage.setTo(toEmail);
mailMessage.setSubject(subject);
mailMessage.setText(message);
javaMailSender.send(mailMessage);
}
解决方案
无法更改FROM EMAIL
地址,因为它hard coded: spring.mail.username = ***@otherdomain
位于resources/application.properties
.
但是您使用MimeMessagePreparator
try {
MimeMessagePreparator preparator = (mimeMessage) -> {
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(new InternetAddress("no-reply@gmail.com", "JACK SPARROW"));
helper.setTo("example@gmail.com");
helper.setSubject("Sample email");
helper.setText("Message from ....", true);
};
javaMailSender.send(preparator);
} catch (MailException exception) {
throw exception;
}
推荐阅读
- javascript - 如何向 stripe.js 添加金额字段?
- templates - T4 模板生成的文件没有嵌套在 .tt 文件下
- c# - 如何在控制器类 - Web API 中使用异步、并行任务?
- python - Pytest 不会运行任何测试
- javascript - 点击 webpack resolve/loader 以添加回退
- javascript - 我有几个文本框在我输入一个时会填满
- javascript - 如何在页面上显示对象数组
- javascript - 使用循环和递归的斐波那契数列
- javascript - 如何在脚本中将函数参数传递给 url_for
- python - 查找一个数组大于第二个数组中的元素的索引