gpt4 book ai didi

java - Xpages - java.lang.NoSuchMethodError : javax/mail/internet/MimeBodyPart. AttachFile(Ljava/io/File;)V

转载 作者:行者123 更新时间:2023-11-30 01:47:01 26 4
gpt4 key购买 nike

我想在向收件人发送电子邮件时包含附件。我已经能够设置和获取附件,但是当从 Javaxmail 调用 AttachFile 方法时,我收到错误。

此代码是使用 javax 库用 Java 编写的。

一切看起来都很好,但是却失败了。我也尝试过添加编码,但结果相同。

调用 AttachFile 方法时此代码失败。

attachPart.attachFile(f); // fails here...


try {
Message msg = new MimeMessage(propsSess);
msg.setFrom(new InternetAddress(this.defaultSenderAddress));

setRecipient(msg, this.sendTo, "to");
msg.setSubject(this.subject);
msg.setContent(this.bodyHtml, "text/html");
msg.setHeader("X-Mailer", "Java Agent");
msg.setSentDate(new Date());

if (!this.bodyAttach.isEmpty()) {
BodyPart messageText = new MimeBodyPart();
messageText.setText(this.bodyHtml);

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

// adds attachments
for (int index = 0; index < this.bodyAttach.size(); index++) {
MimeBodyPart attachPart = new MimeBodyPart();
try {
System.out.println(this.bodyAttach.get(index)); // shows only 1st attachments
File f = new File(this.bodyAttach.get(index));

attachPart.attachFile(f); // fails here...
} catch (IOException ex) {
ex.printStackTrace();
}
multipart.addBodyPart(attachPart);
}

// sets the multi-part as e-mail's content
msg.setContent(multipart);
}
SMTPTransport transport = (SMTPTransport) propsSess.getTransport("smtp");
transport.connect(this.smtpServerAddress, null, null);
if (transport.isConnected()) {
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
this.processMessage.add("success");
}
} catch (Exception e) {
this.processMessage.add(databaseTitle + ": SmtpMail bean: Message or SMTPTransport error");
return false;
}

最佳答案

javax.mail有点像多米诺骨牌上的地雷。它有点存在,通过“next”目录中的“mail.jar”以及 com.ibm.designer.lib.javamail 的方式存在。 OSGi 领域的插件,但那是规范的 1.3 版本。不幸的是,您尝试使用的方法已在 1.4 中添加。

您也许可以通过向 NSF 添加较新版本的 javax.mail+its 实现的 jar 来解决这个问题,但我还没有尝试过,所以我不能肯定地说。无论如何,这可能是您已经在尝试的方法,以访问这些类(class)。您还可以尝试将此代码放入 OSGi 插件中,并将 javax.mail jar 嵌入其中,或者将其作为版本范围受限的外部 OSGi 插件。

您也可以使用 Notes API 发送电子邮件,不过这样您将使用 Domino 服务器而不是自定义 SMTP 服务器来路由电子邮件(除非 Domino 恰好配置为通过该服务器进行路由)。

关于java - Xpages - java.lang.NoSuchMethodError : javax/mail/internet/MimeBodyPart. AttachFile(Ljava/io/File;)V,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57571398/

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