使用 Apache commons 电子邮件在我的硬盘驱动器上发送带有附件的邮件
Send a mail with an attachment on my hard drive with Apache commons email
我在使用 Apache commons 电子邮件发送邮件附件时遇到问题。
快速解释一下,邮件已发送,但当我在 Outlook 中查看时根本没有附件。
我使用 Apache commons email v1.4 和 JAVA 8。
我想在我的硬盘驱动器上的这个位置添加一个日志文件 C:\myfolder\myfile.log
这是我到目前为止尝试添加的附件
Path logRejetPath = Paths.get("C:\myfolder\myfile.log");
Boolean pathExists = Files.exists(logRejetPath, new LinkOption[]{LinkOption.NOFOLLOW_LINKS});
if (pathExists) {
File rejLogFile = new File(logRejetPath.toString());
email.attach(new FileDataSource(rejLogFile), "test", "test");
}
email.send();
或者
Path logRejetPath = Paths.get("C:\myfolder\myfile.log");
Boolean pathExists = Files.exists(logRejetPath, new LinkOption[]{LinkOption.NOFOLLOW_LINKS});
if (pathExists) {
File rejLogFile = new File(logRejetPath.toString());
email.attach(rejLogFile);
}
email.send();
或者
Path logRejetPath = Paths.get("C:\myfolder\myfile.log");
Boolean pathExists = Files.exists(logRejetPath, new LinkOption[]{LinkOption.NOFOLLOW_LINKS});
if (pathExists) {
EmailAttachment attachment = new EmailAttachment();
attachment.setPath(logRejetPath.toString());
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("test");
attachment.setName("test");
email.attach(attachment);
}
email.send();
我精确的电子邮件是这样创建的 MultiPartEmail 对象:
MultiPartEmail email = new MultiPartEmail();
try {
email.setHostName(config.getSmtpHost());
email.setSmtpPort(Integer.valueOf(config.getSmtpPort()));
if (!config.getSmtpUser().isEmpty()) {
email.setAuthenticator(
new DefaultAuthenticator(config.getSmtpUser(), config.getSmtpPwd()));
email.setSSLOnConnect(true);
} else {
email.setSSLOnConnect(false);
}
email.setCharset("utf-8");
email.setFrom("me@me.fr");
email.setSubject("subjectforemail");
email.setContent(this.getMessage(), "text/html");
final String[] destinataires = config.getMailDestinataires().split(";");
for (final String dest : destinataires) {
email.addTo(dest);
}
每次使用这些不同的方法添加附件时,我都会收到包含消息但没有附件的电子邮件。每次,变量 pathExists 都是 TRUE,每次我都没有错误。
感谢您以后的回答和帮助。
编辑:通过更改此找到解决方案:
MultiPartEmail email = new MultiPartEmail();
通过这个 :
HtmlEmail email = new HtmlEmail();
通过更改此找到解决方案:
MultiPartEmail email = new MultiPartEmail();
通过这个 :
HtmlEmail email = new HtmlEmail();
我在使用 Apache commons 电子邮件发送邮件附件时遇到问题。 快速解释一下,邮件已发送,但当我在 Outlook 中查看时根本没有附件。
我使用 Apache commons email v1.4 和 JAVA 8。 我想在我的硬盘驱动器上的这个位置添加一个日志文件 C:\myfolder\myfile.log
这是我到目前为止尝试添加的附件
Path logRejetPath = Paths.get("C:\myfolder\myfile.log");
Boolean pathExists = Files.exists(logRejetPath, new LinkOption[]{LinkOption.NOFOLLOW_LINKS});
if (pathExists) {
File rejLogFile = new File(logRejetPath.toString());
email.attach(new FileDataSource(rejLogFile), "test", "test");
}
email.send();
或者
Path logRejetPath = Paths.get("C:\myfolder\myfile.log");
Boolean pathExists = Files.exists(logRejetPath, new LinkOption[]{LinkOption.NOFOLLOW_LINKS});
if (pathExists) {
File rejLogFile = new File(logRejetPath.toString());
email.attach(rejLogFile);
}
email.send();
或者
Path logRejetPath = Paths.get("C:\myfolder\myfile.log");
Boolean pathExists = Files.exists(logRejetPath, new LinkOption[]{LinkOption.NOFOLLOW_LINKS});
if (pathExists) {
EmailAttachment attachment = new EmailAttachment();
attachment.setPath(logRejetPath.toString());
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("test");
attachment.setName("test");
email.attach(attachment);
}
email.send();
我精确的电子邮件是这样创建的 MultiPartEmail 对象:
MultiPartEmail email = new MultiPartEmail();
try {
email.setHostName(config.getSmtpHost());
email.setSmtpPort(Integer.valueOf(config.getSmtpPort()));
if (!config.getSmtpUser().isEmpty()) {
email.setAuthenticator(
new DefaultAuthenticator(config.getSmtpUser(), config.getSmtpPwd()));
email.setSSLOnConnect(true);
} else {
email.setSSLOnConnect(false);
}
email.setCharset("utf-8");
email.setFrom("me@me.fr");
email.setSubject("subjectforemail");
email.setContent(this.getMessage(), "text/html");
final String[] destinataires = config.getMailDestinataires().split(";");
for (final String dest : destinataires) {
email.addTo(dest);
}
每次使用这些不同的方法添加附件时,我都会收到包含消息但没有附件的电子邮件。每次,变量 pathExists 都是 TRUE,每次我都没有错误。
感谢您以后的回答和帮助。
编辑:通过更改此找到解决方案:
MultiPartEmail email = new MultiPartEmail();
通过这个 :
HtmlEmail email = new HtmlEmail();
通过更改此找到解决方案:
MultiPartEmail email = new MultiPartEmail();
通过这个 :
HtmlEmail email = new HtmlEmail();