在使用javamail API在亚马逊服务器中发送带有pdf附件的邮件时,在日志中抛出空指针异常。但是相同的代码在本地工作。
public void sendMail(final String mailTo, final String mailSubject, final String mailText, final String filePath, final String fileName) {
logger.info("Inside sendMail Method...");
final Properties config = createConfiguration();
// Creates a mail session. We need to supply username and password for Gmail authentication.
final Session session = Session.getInstance(config, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(mailFrom, mailPassword);
}
});
// Creates email message
final MimeMessage message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress(mailFrom));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(mailTo));
message.setSubject(mailSubject);
final BodyPart messagePart = new MimeBodyPart();
messagePart.setContent(mailText, contentType);
final MimeMultipart multipart = new MimeMultipart();
multipart.addBodyPart(messagePart);
if (filePath != null) {
final MimeBodyPart attachmentPart = new MimeBodyPart();
final URL url;
try {
url = new URL(filePath);
final DataSource source = new URLDataSource(url);
attachmentPart.setDataHandler(new DataHandler(source));
attachmentPart.setFileName(fileName);
multipart.addBodyPart(attachmentPart);
} catch (MalformedURLException e) {
logger.error("Malformed URL Exception: " + e.getMessage());
}
}
message.setContent(multipart);
// Send a message
Transport.send(message);
logger.info("Mail triggered successfully");
} catch (final AddressException e) {
logger.error("Address Exception: " + e.getMessage());
} catch (final MessagingException e) {
logger.error("Messaging Exception: " + e.getMessage());
}
}
请在下面找到amozon服务器应用程序日志上生成的异常。
2014-03-20 19:01:30,936 [DefaultQuartzScheduler_Worker-2] INFO net.app.api.jobs.MailJob - Error in triggering the mail : null
java.lang.NullPointerException
at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:226)
at javax.mail.internet.MimeUtility.getEncoding(MimeUtility.java:299)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1375)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1021)
at javax.mail.internet.MimeMultipart.updateHeaders(MimeMultipart.java:419)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1354)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:2107)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:2075)
at javax.mail.Transport.send(Transport.java:123)
at net.app.api.mail.MailTrigger.sendMail(MailTrigger.java:104)
at net.app.api.jobs.MailJob.execute(MailJob.java:41)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
有人请为此提供一些可行的解决方案。提前致谢。
问题可能是您无法访问filePath中的URL。
filePath是“ file:” URL吗?如果是这样,为什么不只使用FileDataSource?
问题内容: 是否有用于NodeJS的库,用于发送带有附件的邮件? 问题答案: 是的,这非常简单,我使用nodemailer: 然后阅读文件并发送电子邮件:
问题内容: 有没有人有通过Amazon SES(使用Java)发送带有附件的电子邮件的示例? 问题答案: 也许有些迟了,但是您可以使用以下代码(您还需要Java Mail):
本文向大家介绍Codeigniter实现发送带附件的邮件,包括了Codeigniter实现发送带附件的邮件的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Codeigniter实现发送带附件的邮件的方法。分享给大家供大家参考。具体分析如下: attach() 方法允许你的发邮件时带上附件,下面是演示代码 希望本文所述对大家基于Codeigniter的php程序设计有所帮助。
我正在尝试上载一个csv文件到服务器。下面是我的HTML代码: 还有我的JS:- 我面临以下错误:- 加载资源失败:服务器响应的状态为500(HTTP/1.1 500) 可能未经处理的拒绝:{“data”:{“timestamp”:1510643953084,“status”:500,“error”:“内部服务器错误”,“exception”:“java.lang.NullPointerExcep
问题内容: 我遇到了一个问题:直到今天,我使用包含以下内容的标头使用PHP发送HTML邮件 现在,我添加了添加附件的功能。为此,我不得不将此行更改为 现在,使用,邮件的其余部分(即普通文本)将显示为文本/纯文本。我怎么能知道附件有效并且邮件文本仍然是HTML? 问题答案: 要发送带有附件的电子邮件,我们需要使用multipart / mixed MIME类型,该类型指定混合类型将包含在电子邮件中。
我正试图通过console/cron使用CakePHP 1.3电子邮件组件发送电子邮件。电子邮件被发送出去了 通过表单完成后,电子邮件将与附件一起成功发送。我已经尝试添加了$this- 我的代码如下: 所以,基本上我的问题是,当我通过控制台/cron运行外壳脚本时,我如何获得附件发送的电子邮件。 提前谢谢你。