如何使用SimpleMailMessage类在发送邮件时使Java字符串着色

4

我是使用Java中的SimpleMailMessage类发送邮件的。我同时使用spring和hibernate。当发送邮件时,我想将一个特定的字符串设置为彩色。

代码:

    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()方法。有什么办法可以设置颜色吗?


要使用颜色和字体,您需要将电子邮件作为HTML电子邮件发送,然后使用HTML标记和样式标记使电子邮件显示为您想要的样子。在样式方面,将电子邮件视为一个迷你网站。我不确定SimpleMailMessage是否能够做到这一点。我建议使用消息(Message)并使用传输(Transport)发送该消息。 - Daniel Tung
我也将HTML标签应用到我的代码中,例如:String emailBody = "<h1>亲爱的 </h1>" + username; 这将在邮件正文中显示<h1>亲爱的</h1>。 - Gayathri Rajan
SimpleMailMessage这个类,是来自Spring库吗?如果是的话,他们在文档中有指导方针,建议使用另一个类来发送更复杂的电子邮件。看起来SimpleMailMessage只支持纯文本,不能用于发送HTML电子邮件。http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/mail/SimpleMailMessage.html - Daniel Tung
1
可能是重复问题,请查看链接(https://dev59.com/P2435IYBdhLWcg3wqB4x),使用样式和HTML元素添加颜色。 - mallikarjun
1个回答

3

Spring 4.2.1文档指出,如果您想要使用颜色,应该使用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 时的纯文本。

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