需要显示特定名称而不是用户名作为通过 Spring boot smtp 发送邮件的显示名称?
Need to show a specific name instead of username as display name to mail send via Spring boot smtp?
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("abcd@gmail.com");
message.setTo(recipients);
message.setSubject("SERVICE DOWN");
message.setText(".............");
mailSender.send(message);
使用此功能时,用户名显示为显示名称。我想要自定义名称,例如“SUPPORT”?
正如您在 API docs from Spring 上看到的那样,您应该使用不同的 class:
“考虑使用 JavaMailSender 和 JavaMail MimeMessages 来创建更复杂的消息,例如带有附件、特殊字符编码或伴随邮件地址的个人姓名的消息。”
SimpleMailMessage
不支持该功能。您必须使用另一个 class 才能做到。 MimeMessageHelper
是一个不错的选择。它使用起来非常简单,并且支持更多功能。
这是一个简单的例子
首先,需要一个MailSender
对象。您可以创建一个或从中创建一个 bean:
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.gmail.com");
mailSender.setPort(587);
mailSender.setUsername("my.gmail@gmail.com");
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);
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("abcd@gmail.com");
message.setTo(recipients);
message.setSubject("SERVICE DOWN");
message.setText(".............");
mailSender.send(message);
使用此功能时,用户名显示为显示名称。我想要自定义名称,例如“SUPPORT”?
正如您在 API docs from Spring 上看到的那样,您应该使用不同的 class: “考虑使用 JavaMailSender 和 JavaMail MimeMessages 来创建更复杂的消息,例如带有附件、特殊字符编码或伴随邮件地址的个人姓名的消息。”
SimpleMailMessage
不支持该功能。您必须使用另一个 class 才能做到。 MimeMessageHelper
是一个不错的选择。它使用起来非常简单,并且支持更多功能。
这是一个简单的例子
首先,需要一个MailSender
对象。您可以创建一个或从中创建一个 bean:
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.gmail.com");
mailSender.setPort(587);
mailSender.setUsername("my.gmail@gmail.com");
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);