HTML форматированный текст в электронном письме на Java - PullRequest
0 голосов
/ 29 января 2019
     try{
        String msg="Happy BirthDay Dear,<b> "+name.toUpperCase()+" </b> !!! Have a Great Day. \n \n Thank You \n Seva Development ";
        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message);
        helper.setTo(email);
        helper.setText(msg);
        helper.setSubject("BirthDay");
        mailSender.send(message);

    }catch (Exception e){}
}

Я пытаюсь выделить имя пользователя, но оно отображается в письме, как показано на рисунке.Идеи или решения высоко ценятся enter image description here

Ответы [ 4 ]

0 голосов
/ 29 января 2019

Это сработало для меня, я изменил двухстрочный код, Спасибо всем за ваш вклад

private void sendEmail(String email,String name) throws Exception{
    Thread thread=new Thread(){
        @Override
        public void run() {

            try{
                String msg="Dear<b> "+name.toUpperCase()+" </b>,<p> On Behalf of someone we would like to wish you a Many many Happy returns of the day</p> <p style=color:red;>Happy Birthday and Have a Great Day.</p>\n \n Thank You!";

                MimeMessage message = mailSender.createMimeMessage();
                MimeMessageHelper helper = new MimeMessageHelper(message,true);
                helper.setTo(email);
                helper.setText(msg);
                message.setContent(msg, "text/html");                   
                helper.setSubject("BirthDay");
                mailSender.send(message);

            }catch (Exception e){}
        }
    };
    thread.start();

}

enter image description here

0 голосов
/ 29 января 2019

Поскольку вы используете MimeMessageHelper. Попробуйте ниже.

 MimeMessageHelper helper = new MimeMessageHelper(message,true);
 helper.setText(msg, true);

Используйте MimeMessageHelper.setText (emailContent, true) метод.Логический флаг true указывает на содержание html.

0 голосов
/ 29 января 2019

Вы не указали тип содержимого почты.В этом случае он отправляется в простой форме.

Попробуйте установить тип содержимого

helper.setContent(htmlMsg, "text/html;  charset=\"utf-8\"");

Теперь, когда вы откроете это письмо с помощью любого почтового клиента, оно будет читать его в формате HTML.

Вы также можете установить несколько форматовиспользуя MimeMultitype

Multipart multipart = new MimeMultipart("alternative");
BodyPart messageBodyPart;

// PLAIN TEXT
messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(textBody, "text/plain; charset=\"utf-8\"");
multipart.addBodyPart(messageBodyPart);

// HTML TEXT
messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(htmlBody, "text/html; charset=\"utf-8\"");
multipart.addBodyPart(messageBodyPart);

message.setContent(multipart);
0 голосов
/ 29 января 2019

Попробуйте установить helper.setContent(htmlMsg, "text/html");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...