2011-01-04 7 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이 하나임)는 특정 개행을 제거합니다. 때로는 개행을 단락처럼 취급하도록 두 줄을 올려야 할 때도 있습니다. –

2

실제로 문제는 message.setText를 호출 할 때 두 번째 arguement를 true로 설정하는 것입니다. 즉, 메시지가 HTML로 해석됩니다. 전자 메일 개행을 표시하려면 두 번째 인수를 false로 설정하십시오.