2011-01-04 8 views
1

電子メールコンテンツに改行文字を挿入する方法を教えてもらえますか?このコードスニペットを使用してメールを送信します。春の電子メールと改行文字

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); 
} 

電子メールのコンテンツで\ r \ n文字を試しました。しかし、それは動作していないようです。 BRタグのようなHTMLマークアップは動作しますが、電子メールコンテンツにhtmlマークアップを追加したくありません。それ以外の解決策はありますか?

+0

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

答えて

1

改行文字と速度テンプレートは、文書化された問題です。最も良い回避策は、テンプレートに使用できるようにするプロパティの値として "\ n"を隠すことです。そのプロパティを参照してください。

+0

これは動作していないようです。 – user378101

+0

この問題を分割してください。送信する前にメッセージのテキストを印刷します。改行がありますか?一部のメールクライアント(Outlookは1つ)は特定の改行を取り除きます。時には改行を二重にして段落区切りのように扱わなければならないことがあります。 –

2

実際問題は、message.setTextを呼び出すときに、2番目の引数をtrueに設定することです。つまり、メッセージはHTMLとして解釈されます。電子メールの改行が表示されるようにするには、その2番目の引数をfalseに設定します。

関連する問題