2012-08-09 2 views
2

재생 시도 중! 첨부 파일이있는 이메일을 보내는 프레임 워크. 첨부 파일을 메시지에 추가하지 않으면 아래의 코드가 제대로 작동합니다. 나는 Play의 Mailer 클래스와 Apache Commons 클래스 (아래 참조)를 사용하여 시도했지만, 두 경우 모두 페이지가 회 전자 (Chrome)와 함께 표시되며 이메일은 수신되지 않습니다.첨부 파일이있는 이메일을 Play에서 보내는 방법! 프레임 워크 1.2.4

EmailAttachment attachment = new EmailAttachment(); 
attachment.setURL(new URL(base + "public/images/triangles.png")); 
attachment.setDisposition(EmailAttachment.ATTACHMENT); 
attachment.setDescription("test"); 
attachment.setName("test"); 

emailaddress = "[email protected]"; 

MultiPartEmail email = new MultiPartEmail(); 
email.setDebug(true); 
email.addTo(emailaddress); 
email.setFrom("Testing <[email protected]>"); 
email.setSubject("Testing email"); 
try 
{ 
    email.attach(attachment); 
} 
catch (EmailException ex) 
{ 
    System.out.println(ex.getMessage()); 
} 
email.setMsg("test email"); 
email.send(); 

답변

6

임 이미 Examples for Apache CommonsSending e-mail - Play! Framework 1.1를 살펴 했어 추측?

IMO JavaMailapi과 같은 많은 문서 및 예제가있는 잘 알려진 라이브러리를 사용하는 것이 좋습니다. 여기

은 바로 시작하는 것입니다 몇 가지 튜토리얼입니다

를 통해 첨부 파일이있는 이메일을 보낼 수있는 JavaMail에를 사용하는 예 Gmail은 다음과 같습니다.

import java.util.Properties; 

import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 

public class SendMailTLS { 

public static void main(String[] args) { 

    final String username = "[email protected]"; 
    final String password = "password"; 

    Properties props = new Properties(); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.host", "smtp.gmail.com"); 
    props.put("mail.smtp.port", "587"); 

    Session session = Session.getInstance(props, 
      new javax.mail.Authenticator() { 

       protected PasswordAuthentication getPasswordAuthentication() { 
        return new PasswordAuthentication(username, password); 
       } 
      }); 

    try { 

     // Define message 
     MimeMessage message = 
       new MimeMessage(session); 
     message.setFrom(
       new InternetAddress(from)); 
     message.addRecipient(
       Message.RecipientType.TO, 
       new InternetAddress(to)); 
     message.setSubject(
       "Hello JavaMail Attachment"); 

     // create the message part 
     MimeBodyPart messageBodyPart = 
       new MimeBodyPart(); 

     //fill message 
     messageBodyPart.setText("Hi"); 

     Multipart multipart = new MimeMultipart(); 
     multipart.addBodyPart(messageBodyPart); 

     // Part two is attachment 
     messageBodyPart = new MimeBodyPart(); 
     DataSource source = 
       new FileDataSource(fileAttachment); 
     messageBodyPart.setDataHandler(
       new DataHandler(source)); 
     messageBodyPart.setFileName(fileAttachment); 
     multipart.addBodyPart(messageBodyPart); 

     // Put parts in message 
     message.setContent(multipart); 

     // Send the message 
     Transport.send(message); 


    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

}

HTH

참조 :

+0

문제가 처음에 올바르게 장착 생성 문제 밖으로 선회 장소 - 잘 작동합니다. 브라우저 또는 cURL 요청에서, bytearray로 가져 오려고 할 때가 아닙니다. 귀하의 답변이 원래 질문에 유용하고 정확하기 때문에, 나는 그것이 받아 들일 수있는 것으로 표시 할 것입니다. –