使用SimpleMailMessage类

时间:2015-10-14 10:45:37

标签: java spring email

我在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()方法。有没有办法设置颜色?

1 个答案:

答案 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的邮件客户端的纯文本。