Хобрук: Ваш путь к мастерству в программировании

Вложение, отправленное через AWS SES, не отображается на iphone

Наш сервис отправляет электронное письмо с вложением, которое не отображается на устройствах iOS.

Команда AWS предложила добавить двойные кавычки вокруг имени файла, но когда я пытаюсь добавить ", MimeBodyPart превращается в escape-символ.

MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDisposition(Part.ATTACHMENT);
messageBodyPart.setDataHandler(new DataHandler(Base64.getMimeDecoder()
.decode(attachment.getAttachment()), attachment.getContentType()));
messageBodyPart.setFileName("\""+ attachment.getName()+"\"");

От: [email protected] Кому: [email protected] Идентификатор сообщения: ‹962944318.2.1571250351443 @ [10.200.78.179]> Тема: тема для теста Версия MIME: 1.0 Content-Type: multipart / related;
border = "---- = _ Part

MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDisposition(Part.ATTACHMENT);
messageBodyPart.setDataHandler(new DataHandler(Base64.getMimeDecoder()
.decode(attachment.getAttachment()), attachment.getContentType()));
messageBodyPart.setFileName("\""+ attachment.getName()+"\"");
977674685.1571250351337"

------ = _ Part

MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDisposition(Part.ATTACHMENT);
messageBodyPart.setDataHandler(new DataHandler(Base64.getMimeDecoder()
.decode(attachment.getAttachment()), attachment.getContentType()));
messageBodyPart.setFileName("\""+ attachment.getName()+"\"");
977674685.1571250351337 Content-Type: multipart / alternate;
Border = "---- = _ Part_0_474488818.1571250351334"

------ = _ Part_0_474488818.1571250351334 Content-Type: text / html; charset = UTF-8 Content-Transfer-Encoding: 7 бит

Привет, ваше письмо отправлено успешно ------ = _ Part_0_474488818.1571250351334--

------ = _ Part

MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDisposition(Part.ATTACHMENT);
messageBodyPart.setDataHandler(new DataHandler(Base64.getMimeDecoder()
.decode(attachment.getAttachment()), attachment.getContentType()));
messageBodyPart.setFileName("\""+ attachment.getName()+"\"");
977674685.1571250351337 Content-Type: application / pdf; name = "\" myData.pdf \ "" Content-Transfer-Encoding: base64 Content-Disposition: вложение; filename = "\" myData.pdf \ ""

ICAgICAgICAgDXhyZWYNNCAxMQ0wMDAwMDAwMDE2IDAwMDAwIG4NCjAwMDAwMDA2NjAgMDAwMDAg ------ = _ Part

MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDisposition(Part.ATTACHMENT);
messageBodyPart.setDataHandler(new DataHandler(Base64.getMimeDecoder()
.decode(attachment.getAttachment()), attachment.getContentType()));
messageBodyPart.setFileName("\""+ attachment.getName()+"\"");
977674685.1571250351337--


  • Почтовый клиент на ios хотя бы показывает, что есть вложение, и не может его открыть? или вы вообще не видите вложения в полученном письме? 17.10.2019
  • Он показывает, что есть вложение, но когда я открываю письмо, я его не вижу. Я могу открыть вложение в веб-интерфейсе iCloud, это просто почтовое приложение IOS, в котором возникла проблема. 18.10.2019

Ответы:


1

Найдено исправление, проблема связана с типом содержимого. изменение типа содержимого на multipart / mixed разрешило его.

06.12.2019
Новые материалы

Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

«Очень простой» эволюционный подход к обучению с подкреплением
В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

Фишинг — Упаковано и зашифровано
Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

ВЫ РЕГРЕСС ЭТО?
Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

Не зря же это называют интеллектом
Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

LeetCode Проблема 41. Первый пропущенный положительный результат
LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..