Специальные символы в теме писем - PullRequest
1 голос
/ 03 мая 2011

В настоящее время мы работаем над дефектом, позволяющим видеть специальные символы в теме письма.Электронная почта имеет текстовый / html тип mime.

В настоящее время, если у субъекта должен быть символ сердца, он отображается как «& сердце», но в теле письма отображается символ «сердце».

Может ли кто-нибудь помочь нам с решением использовать специальные символы, также являющиеся частью темы?

Вот фрагмент кода.

public boolean send(String to, String from, String subject, String templatePath, Map map) {
// create a mime message using the mail sender implementation
MimeMessage mimeMessage = mailSender.createMimeMessage();

// create the message using the specified template
MimeMessageHelper helper;
try
{

  helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
  helper.setTo(to);
  helper.setSubject(subject);
  helper.setFrom(from);

  String text = VelocityEngineUtils.mergeTemplateIntoString(engine, templatePath, map);
  helper.setText(text, true);
  send(mimeMessage);
  log.debug("in send  at start" + this.getClass().getName()
            + ":SUCCESS: Sendig mail to" + to + " from " + from + " subject "
            + subject);
} catch (MessagingException e)
{
  throw new MailPreparationException("unable to create the mime message helper", e);
} catch (Exception e)
{
  log.debug("in send  at start" + this.getClass().getName() + ":Failed sending mail"
            + to + " from " + from + " subject " + subject);
  // throw new
  // MailPreparationException("unable to create the mime message helper",
  // e);
}
return false;

} public boolean send (MimeMessage mimeMessage) создает исключение {

try
{

  Multipart multipart = new MimeMultipart();
  BodyPart bodyPart = new MimeBodyPart();
  multipart.addBodyPart(bodyPart);
  bodyPart.setContent(mimeMessage.getContent(), "text/html");
  mimeMessage.setContent(multipart);
  mailSender.send(mimeMessage);
} catch (Exception e)
{
  log.error("in send  at start" + this.getClass().getName() + ":Failed sending mail"
            + e.getMessage());

  // e.printStackTrace();
  throw e;
  // return false;
}
return true;

}

Ответы [ 2 ]

2 голосов
/ 10 мая 2011
  public static String HTMLDecode(String encodedHTML) {

        return encodedHTML.replaceAll("¡", "\u00A1")
                          .replaceAll("¢", "\u00A2")
                          .replaceAll("£", "\u00A3")
                          .replaceAll("¤", "\u00A4")
                          .replaceAll("¥", "\u00A5")
                          .replaceAll("¦", "\u00A6")
                          .replaceAll("§", "\u00A7")
                          .replaceAll("¨", "\u00A8")
                           ........
1 голос
/ 09 мая 2011

Вы можете отправить как Unicode / UTF-8.

...