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){}
}
I am trying to bold the name of the user but it displays as it is in the mail as shown in the picture. Ideas or solutions are highly appreciated
4 Réponses :
Essayez de définir helper.setContent (htmlMsg, "text / html");
J'ai essayé d'utiliser votre code mais cela me donne un message d'erreur "Impossible de résoudre la méthode 'setContent (java.lang.String, java.lang.String)"
Puisque vous utilisez MimeMessageHelper . Essayez ci-dessous.
MimeMessageHelper helper = new MimeMessageHelper(message,true); helper.setText(msg, true);
Utilisez MimeMessageHelper.setText (emailContent, true) méthode. L'indicateur booléen true indique le contenu html.
Vous n'avez pas spécifié le type de contenu de l'e-mail. Dans ce cas, il est envoyé en clair.
Essayez de définir le type de contenu
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);
Maintenant, lorsque vous ouvrez ce courrier avec n'importe quel client de messagerie, il le lira au format html.
Vous pouvez définissez également plusieurs formats en utilisant MimeMultitype
helper.setContent(htmlMsg, "text/html; charset=\"utf-8\"");
Cela a fonctionné pour moi, j'ai changé le code de deux lignes, merci à tous pour votre contribution
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();
}
p>
Rien dans cette question n'indique en soi un problème avec Spring ou le fait que vous utilisez des composants Spring. De plus, je serais choqué si une bibliothèque de courrier permettait une entrée utilisateur arbitraire pour dicter le formatage comme du texte en gras ou en italique; qui est généralement configuré explicitement dans le modèle.
Avez-vous essayé ma solution?
1) Notez que la
Stringvue ci-dessus utilise un balisage pour certaines parties, mais utilise également des sauts de ligne (\ n) qui seront ignorés par HTML. 2)} catch (Exception e) {}N'ignorez pas les exceptions! Ils nous informent exactement de ce qui n'a pas fonctionné. À moins que la journalisation ne soit implémentée, appelez au moinsThrowable.printStackTrace ()