我在java中使用SimpleMailMessage类发送邮件。我使用带有hibernate的spring.I想在发送邮件时将特定字符串设置为彩色。
代码:
String emailBody = "Dear "+username;
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom("My Name <myemail>");
simpleMailMessage.setTo(mailid);
simpleMailMessage.setSubject(emailSubject);
simpleMailMessage.setText(emailBody);
mailSender.send(simpleMailMessage);
我想在发送邮件时将用户名设置为蓝色。我搜索了很多,但只看到了mimemessage的方法,即mimemessage.setContent(someHtmlMessage,“text / html; charset = utf-8”); simplemailmessage没有setcontent()方法。有没有办法设置颜色?
答案 0 :(得分:3)
Spring 4.2.1 documentation状态,如果您想要颜色,则应使用 MimeMessage 而不是 SimpleMailMessage 。以下是我在代码中的使用方法:
MimeMessagePreparator mailMessage = mimeMessage -> {
MimeMessageHelper message = new MimeMessageHelper(
mimeMessage, true, ENCODING);
try {
message.setFrom(senderEmail, senderName);
for (String addr : recipientEmails) {
message.addTo(addr);
}
message.setReplyTo(senderEmail);
message.setSubject(subject);
message.setText(fallbackTextContent, htmlContent);
} catch (Exception e) {
throw new MailDeliveryServiceException(recpStr, e);
}
};
mailSender.send(mailMessage);
正如Daniel上面提到的 htmlContent 基本上是一个没有相对链接的小网页。 fallbackTextContent 是不支持HTML的邮件客户端的纯文本。