gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:52:13 25 4
gpt4 key购买 nike

正在尝试 Play !发送带附件的电子邮件的框架。如果我不将附件添加到邮件中,下面的代码可以正常工作。我已经尝试过使用 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();

最佳答案

我猜你已经看过 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

引用资料:

关于java - 如何从 Play 发送带有附件的电子邮件!框架 1.2.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11882317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com