2010-04-21 6 views
1

그것은합니다 (example in Spring documentation에서 수정)을 여러 부분없이 잘 작동 :보내는 여러 부분으로 이메일이 실패

final MimeMessagePreparator preparator = new MimeMessagePreparator() { 
    public void prepare(final MimeMessage mimeMessage) throws Exception { 
     final MimeMessageHelper message = new MimeMessageHelper(
       mimeMessage, true); 
... 
     message.setText(plainText, htmlText); 
    } 
}; 
mailSender.send(preparator); 
: 나는 그것을 변경하면

final MimeMessagePreparator preparator = new MimeMessagePreparator() { 
    public void prepare(final MimeMessage mimeMessage) throws Exception { 
     final MimeMessageHelper message = new MimeMessageHelper(
       mimeMessage); 
     message.setTo(toAddress); 
     message.setFrom(fromAddress); 
     message.setSubject(subject); 
     final String htmlText = FreeMarkerTemplateUtils 
       .processTemplateIntoString(configuration 
         .getTemplate(htmlTemplate), model); 
     message.setText(htmlText, true); 
    } 
}; 
mailSender.send(preparator); 

그러나

내가 얻을 다음 GMTransport 이후

Failed message 1: 
javax.mail.MessagingException: Converting attachment data failed 
    at com.google.appengine.api.mail.stdimpl.GMTransport.sendMessage(GMTransport.java:231) 
    at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:402) 
... 

가 독점 구글 클래스이고 n o 소스를 사용할 수 있지만, 문제를 파악하는 것은 꽤 어렵습니다 (적어도 자신의 기술로는). 누구든지 다음에 시도 할 아이디어가 있습니까?

내 빈 설정, 을 도와 주셔서 나를 도와 : 나는 바닐라 사용하여 문제가 없었어요

<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl" 
     p:username="${mail.username}" p:password="${mail.password}" 
     p:protocol="gm" /> 

답변

0

최근에이 문제가 발생하여 모든 웹 사이트에서 해결책을 찾지 못했습니다. 문제는 기본적으로 MimeMessageHelper 생성자가 사용하는 multipartMode 매개 변수에 있습니다.

변경 :

MimeMessageHelper h = new MimeMessageHelper(mimeMessage, true); 

하려면 :

MimeMessageHelper h = new MimeMessageHelper(
    mimeMessage, 
    MimeMessageHelper.MULTIPART_MODE_RELATED); 

첫 번째 형태는 MimeMessageHelper.MULTIPART_MODE_MIXED_RELATED로 설정됩니다. 문서 내용 :

이것은 Spring 1.2.1 이후의 기본값입니다. 이것은 아마도 MIME 형식에 따라 가장 정확한 MIME 구조입니다. Outlook, Outlook Express, Yahoo Mail 및 Lotus Notes에서 제대로 작동하는 것으로 알려져 있습니다. Mac Mail에서 제대로 작동하지 않습니다. Mac Mail을 대상으로 삼거나 Outlook의 특정 메일에 문제가있는 경우 대신 MULTIPART_MODE_RELATED를 사용해보십시오.

AppEngine의 Mail API에서 작동하지 않을 수도 있습니다. 대체 모드가 정확하지는 않지만 호환 가능함이 나타납니다.

관련 문제