Отправить письмо с вложением на моем жестком диске с помощью Apache Commons Email
У меня проблема с отправкой вложения по почте с помощью Apache commons email. Чтобы объяснить это быстро и грязно, почта отправляется, но я не вижу вложения вообще, когда я смотрю на это в 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 имеет значение ИСТИНА, и каждый раз у меня нет ошибок.
Спасибо за ваши будущие ответы и помощь.
РЕДАКТИРОВАТЬ: Решение найдено путем изменения этого:
MultiPartEmail email = new MultiPartEmail();
этим:
HtmlEmail email = new HtmlEmail();
1 ответ
Решение найдено путем изменения этого:
MultiPartEmail email = new MultiPartEmail();
этим:
HtmlEmail email = new HtmlEmail();