Отправить HTML письмо с вложением в формате PDF с помощью Java
Я пытаюсь отправить электронное письмо с Java, я использую библиотеку электронной почты Apache Commons.
Мне не удается отправить электронное письмо с телом в формате HTML и вложением в виде PDF (или файла любого типа)
Если я использую EmailAttachment() и добавляю его в объект HtmlEmail, моя почта выглядит как с двумя вложениями. Первый для HTML, второй для PDF.
Есть ли способ сделать это?
Большое спасибо!
2 ответа
Я попробовал Apache Commons Mail v1.2 вместо 1.1.
Оно работает!?
Андрей, кстати большое спасибо за любезную помощь.
Это звучит как относительно нормальное поведение для сообщения, которое отправляется как в виде текста, так и в формате HTML, и / или почтового клиента (на стороне получателя), который предпочитает текстовые электронные письма. Я подозреваю, что это связано с поведением клиента, которое вы не сможете изменить (но с другой стороны, все электронные письма в формате HTML будут выглядеть так).
Дело в том, что электронное письмо в формате HTML (с текстовым компонентом) на самом деле является составным сообщением, в котором содержимое HTML является одной из "дополнительных" частей. Все, что вы на самом деле отправляете в электронном письме со стороны сервера, - это куча текста, и принимающий почтовый клиент должен решить, как его отобразить. В этом отношении для клиента не является неправильным отображать ваш HTML в качестве вложения - точно так же, как для умного клиента не является ошибкой вывод, что HTML не является "настоящим" вложением, и активирует своего рода переключение между текстом. и HTML (вместо того, чтобы отображать его как вложение).
Если вы уверены, что клиент будет нормально относиться к HTML таким умным способом, то:
- Вам нужно будет указать, какой клиент вы используете для проверки, потому что на самом деле это не проблема отправки; а также
- Возможно, вы захотите взглянуть на необработанный источник электронной почты, который "работает", и вашу электронную почту, которая не работает, чтобы определить, какие критические различия вызывают различные режимы рендеринга. В зависимости от клиентского программного обеспечения это может быть что угодно, но я бы уделил особое внимание типам MIME и кодировкам деталей.