2011-01-04 19 views
1

Kann mir jemand sagen, wie Sie Newline-Zeichen in E-Mail-Inhalt einfügen. Ich verwende dieses Code-Snippet, um E-Mails zu senden.Spring E-Mail und neue Zeile Zeichen

public boolean sendMail(final Account player, final Object tl, final String type) 
{ 
    MimeMessagePreparator preparator = new MimeMessagePreparator() { 
     public void prepare(MimeMessage mimeMessage) throws Exception 
     { 
      MimeMessageHelper message = new MimeMessageHelper(mimeMessage); 

      String msgAdmin = msgFrom; 
      message.setTo(player.getEmail()); // TODO: changed from msgAdmin to player.getEmail() 
      message.setFrom(msgFrom); 
      message.setSubject(type + " invitation"); 
      Map model = new HashMap(); 
      model.put("tl", tl); 
      model.put("player", player); 
      model.put("type", type); 
      String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, 
        "com/test/mail/invite.vm", model); 
      logger.debug(text); 
      message.setText(text, true); 
     } 
    }; 
    return sendMail(preparator); 
} 

Ich habe \ r \ n Zeichen im E-Mail-Inhalt versucht. Aber es scheint nicht zu funktionieren. HTML-Markup wie BR-Tag funktioniert, aber ich möchte nicht HTML-Markups im E-Mail-Inhalt hinzufügen. Jede andere Lösung ist möglich?

+0

siehe http://stackoverflow.com/questions/4549427/velocity-templates-new-line – serg

Antwort

1

Newline-Zeichen und Geschwindigkeitsvorlagen ist ein gut dokumentiertes Problem. Die beste Problemumgehung ist das Speichern von "\ n" als Wert einer Eigenschaft, die Sie der Vorlage zur Verfügung stellen. Dann referenziere diese Eigenschaft.

+0

Es scheint nicht zu funktionieren. – user378101

+0

Brechen Sie dieses Problem in Stücke. Drucken Sie den Text Ihrer Nachricht vor dem Senden aus. Gibt es eine neue Zeile? Einige E-Mail-Clients (Outlook ist einer) entfernen bestimmte Zeilenumbrüche. Manchmal müssen Sie Zeilenumbrüche verdoppeln, damit es wie ein Absatzbruch behandelt wird. –

2

Eigentlich ist das Problem, wenn Sie den message.setText aufrufen, setzen Sie das zweite Argument auf wahr. Dies bedeutet, dass die Nachricht als HTML interpretiert wird. Damit die E-Mail-Zeilenumbrüche angezeigt werden, legen Sie das zweite Argument auf false fest.

Verwandte Themen