SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3c5d5e5f587c5b515d5550125f5351" rel="noreferrer noopener nofollow">[email protected]</a>");
message.setTo(recipients);
message.setSubject("SERVICE DOWN");
message.setText(".............");
mailSender.send(message);
使用此功能时,用户名显示为显示名称。我想要自定义名称,例如“SUPPORT”?
最佳答案
SimpleMailMessage
不支持该功能。你必须使用另一个类。一个好的替代方案是 MimeMessageHelper
。它使用起来非常简单,并且支持更多功能。
这是一个简单的例子
首先,需要一个 MailSender
对象。您可以创建一个或从中创建一个 bean:
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.gmail.com");
mailSender.setPort(587);
mailSender.setUsername("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a2cfdb8cc5cfc3cbcee2c5cfc3cbce8cc1cdcf" rel="noreferrer noopener nofollow">[email protected]</a>");
mailSender.setPassword("password");
Properties props = mailSender.getJavaMailProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.debug", "true");
然后发送消息:
MimeMessagePreparator mailMessage = mimeMessage -> {
MimeMessageHelper message = new MimeMessageHelper(
mimeMessage, true, StandardCharsets.UTF_8);
try {
message.setFrom(senderEmail, senderName); // Here comes your name
message.addTo(recipientEmail);
message.setReplyTo(senderEmail);
message.setSubject(subject);
message.setText(fallbackTextContent, htmlContent);
} catch (Exception e) {
throw new MailDeliveryServiceException(recipientEmail, e);
}
};
mailSender.send(mailMessage);
关于java - 需要显示特定名称而不是用户名作为通过 Spring boot smtp 发送邮件的显示名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70563335/