如何发送带Play附件的电子邮件!框架1.2.4

时间:2012-08-09 11:23:28

标签: java playframework apache-commons-email

尝试玩游戏!发送带附件的电子邮件的框架。如果我不在邮件中添加附件,则以下代码可以正常工作。我已经尝试过使用Play的Mailer类和Apache Commons类(如下所示),但在这两种情况下,页面都只使用微调器(Chrome)并且没有收到电子邮件。

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

emailaddress = "test@test.com";

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

1 个答案:

答案 0 :(得分:6)

我猜你已经看过Examples for Apache CommonsSending e-mail - Play! Framework 1.1

IMO我建议使用一个众所周知的库,其中包含大量文档和示例,例如JavaMail及其api

以下是一些可以立即开始使用的教程:

使用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 = "username@gmail.com";
    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

<强>参考文献: