gpt4 book ai didi

Tomcat 内部的 javamail 附加 "noname"

转载 作者:行者123 更新时间:2023-11-28 22:54:57 29 4
gpt4 key购买 nike

我正在尝试使用 TomEE 在 Web 应用程序中使用 javamail 发送电子邮件。我的问题是,当我附加 PDF 等文件时,我收到的文件名为“noname”。我也没有收到正文。

作为观察,如果我从“主”程序(在另一个项目中)执行我的代码,电子邮件将被完美发送。这是代码:

public class EnviaCorreo{


static Properties mailServerProperties;
static Session getMailSession;
static MimeMessage generateMailMessage;


public void generateAndSendEmail() throws AddressException, MessagingException {

System.out.println("\n 1st ===> setup Mail Server Properties..");
mailServerProperties = System.getProperties();
mailServerProperties.put("mail.smtp.port", "587");
mailServerProperties.put("mail.smtp.auth", "true");
mailServerProperties.put("mail.smtp.starttls.enable", "true");
System.out.println("Mail Server Properties have been setup successfully..");

System.out.println("\n\n 2nd ===> get Mail Session..");
getMailSession = Session.getDefaultInstance(mailServerProperties, null);
generateMailMessage = new MimeMessage(getMailSession);
generateMailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("xxx@gmail.com"));
generateMailMessage.addRecipient(Message.RecipientType.CC, new InternetAddress("yyy@gmail.com"));
generateMailMessage.setSubject("Foo store has bought strawberries");

MimeMultipart multiParte = new MimeMultipart();
BodyPart adjunto = new MimeBodyPart();
adjunto.setDataHandler(new DataHandler(new FileDataSource("/home/foo/Desktop/FooProject/src/main/resources/fruit/6781430324446945.pdf")));
adjunto.setFileName("readme.pdf");

BodyPart texto = new MimeBodyPart();
texto.setText("Success!!");



multiParte.addBodyPart(texto);
multiParte.addBodyPart(adjunto);

generateMailMessage.setContent(multiParte, "text/html");
System.out.println("Mail Session has been created successfully..");


System.out.println("\n\n 3rd ===> Get Session and Send mail");
Transport transport = getMailSession.getTransport("smtp");


transport.connect("smtp.gmail.com", "yyy@gmail.com", "foopsswd123()");
transport.sendMessage(generateMailMessage, generateMailMessage.getAllRecipients());
transport.close();
}

奖金

我正在使用 TomEE 和 iText 生成 PDF。我应该将保存动态生成的 PDF 的文件夹放在哪里?

最佳答案

TomEE 默认使用 geronimo javamail(在 tomee 库中)。您可以将其替换为您在 main 中使用的版本并添加 geronimo-locator 和 geronimo-registry http://repo1.maven.org/maven2/org/apache/geronimo/specs/geronimo-osgi-locator/1.1/geronimo-osgi-locator-1.1.jarhttp://repo1.maven.org/maven2/org/apache/geronimo/specs/geronimo-osgi-registry/1.1/geronimo-osgi-registry-1.1.jar以及库中

如果您不想更改版本,可以使用 tomee.xml session 来注入(inject)您的 session 。我知道对于 gmail,您必须提供一个身份 validator ,例如使用 geronimo javamail

关于Tomcat 内部的 javamail 附加 "noname",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986412/

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