2016-03-17 10 views
0

Когда мы отправляем электронное письмо с нашего сервера tomcat, реализуя MimeMultiPart, он открывается в большинстве почтовых программ только в порядке, например. Gmail, Outlook, & Android Mail. Но когда он открывается в Apple Mail, он автоматически открывает PDF-файлы и изображения, которые постоянны в мобильном телефоне (телефоне и планшете, так как ноутбуки могут быть изменены в команде).Apple или Mac Mail открывают все изображения вложений, даже если они встроены.

Вот как он предназначен для Apple, поскольку я читал на нескольких веб-сайтах. Проблема в том, что даже встроенное, предположительно скрытое приложение, также показано. Это приводит к двойному изображению, так как мы называем встроенный через html по почте.

Изображение - это логотип, поэтому он всегда отправляется по электронной почте. Я надеялся, что есть другой протокол, который я могу использовать, который также хорошо работает в почте Apple. Я не видел подобной проблемы в Интернете, поэтому я надеюсь, что мы просто используем какой-то другой протокол.

BodyPart messageBodyPart = new MimeBodyPart(); 
    String htmlText = message + "<img src=\"cid:image123\">"; 
    messageBodyPart.setContent(htmlText, "text/html; charset=UTF-8"); 

    MimeMultipart mp = new MimeMultipart("mixed"); 
    mp.addBodyPart(messageBodyPart); 

    BodyPart imageBodyPart = new MimeBodyPart(); 
    String file = this.getClass().getClassLoader().getResource("images/Logo.gif").getFile(); 
    DataSource fds = new FileDataSource(file); 
    imageBodyPart.setFileName("Logo.gif"); 
    imageBodyPart.setHeader("Content-ID","<image123>"); 
    imageBodyPart.setDisposition(Part.INLINE); 

    mp.addBodyPart(imageBodyPart); 

Когда я удалить HTML-код, он все еще показывает прилагаемое изображение в Apple Mail, однако, он не будет отображаться полностью в другом программном обеспечении электронной почты.

ответ

0

Дефект, наконец, на пути к производству. с небольшим изменением в структуре MIME к https://stackoverflow.com/a/23853079/4558510

То, что я должен был построить,

  • смешанный +
    • связанных +
    • HTML
    • рядный изображение
  • приложение
  • прикрепление

Опуская альтернативу с вложениями, потому что как-то, в момент написания, Yahoo онлайн клиент не отображает их. Приклеивание их в смешанном режиме отлично.

Протестировано и работает, с

  • Apple/IOS почты (Tablet Ipad 2)
  • Перспективы Windows 7 клиент
  • Outlook Mobile (Android)
  • Gmail Веб-клиент
  • Gmail с мобильного (Android)
  • Мобильный телефон для Android (Lollipop)
  • Yahoo c c c lient
  • Yahoo мобильный Email (Android)
  • Lotus Notes для Windows 7 клиент

Примечание: Android используется Samsung Note 4 леденец.

Код:

BodyPart messageBodyPart = new MimeBodyPart(); 
    String htmlText = message + "<img src=\"cid:image123\">"; 
    messageBodyPart.setContent(htmlText, "text/html; charset=UTF-8"); 

    MimeMultipart mpRelated = new MimeMultipart("relative"); 
    mpRelated.addBodyPart(messageBodyPart); 

    BodyPart imageBodyPart = new MimeBodyPart(); 
    String file = this.getClass().getClassLoader().getResource("images/Logo.gif").getFile(); 
    DataSource fds = new FileDataSource(file); 
    imageBodyPart.setFileName("Logo.gif"); 
    imageBodyPart.setHeader("Content-ID","<image123>"); 
    imageBodyPart.setDisposition(Part.INLINE); 

    mpRelated.addBodyPart(imageBodyPart); 

    MimeMultipart mpMixed = new MimeMultipart("mixed"); 
    //Nest Related into mixed 
    BodyPart relatedInMixed = new MimeBodyPart(); 
    relatedInMixed.setContent(mpRelated); 
    mpMixed.addBodyPart(relatedInMixed); 

    //TODO Add attachement to mpMixed 
0

Я также видел это поведение, которое, как я помню, было связано с различием в логике синтаксического анализа заголовка MIME на устройствах iOS.

Этого другой пост (и соответствующие ответы) относится и должен направлять вас к рабочему раствору: Problem sending multipart mail using ActionMailer

Удачи и, пожалуйста, дайте нам знать, как вы получите на.

+0

Я думал, что ноль был особый нрав ... я постараюсь сделать его недействительным или пустым, я думаю. – JaredT

+0

Не работает, просто оставив свободное место. Он все еще отлично работал в Gmail и Outlook. Но почта IOS была не слишком стабильной, иногда логотип находился в середине текста. Я посмотрю еще раз на него в понедельник, чтобы убедиться, что это не значение по умолчанию. – JaredT

 Смежные вопросы

  • Нет связанных вопросов^_^