Электронные письма в iCloud с моего сервера показывают «Это сообщение не имеет содержания»

Наш веб-сайт для пожертвований отправляет электронные письма, когда пользователь регистрируется, делает пожертвования и т. д. Я получил много жалоб на то, что жертвователи получают пустые электронные письма. При дальнейшем расследовании выясняется, что все эти доноры имеют адреса электронной почты Apple, т. е. @mac.com, @me.com, @icloud.com и т. д.

Так что я получил Mac, создал электронное письмо с почтовым приложением для учетной записи iCloud. Сделал тестовое пожертвование и получил электронное письмо. При просмотре в почтовом приложении я вижу слева превью текста

Спасибо за пожертвование ... [тема]
Это сообщение не имеет содержания. [предварительный просмотр тела]

Правая панель также показывала объект, но совершенно пустая для тела.

Также стоит отметить, что такая же проблема есть и на iOS (я одолжил у друга iPhone 6 plus). Однако на моем Android я использовал приложение Outlook и вошел в свой icloud, и там действительно был основной текст!

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

Все поиски проблемы дали решения для конкретного пользователя, столкнувшегося с этой проблемой, но моя проблема связана с самим сообщением электронной почты в почтовом клиенте Apple.

Может ли кто-нибудь указать мне в правильном направлении? Существует ли определенный стандарт html для электронных писем Apple?

Есть ли возможность вставки или ссылки на некоторые образцы?
Кроме того, вы можете проверить, проходят ли сообщения через веб-сайт iCloud?
1) Я не уверен, какой образец будет правильным предоставить. Сообщение с сервера представляет собой базовый html ( divs и tables и т.д.). Может быть, в необработанном сообщении есть подсказка... Если я смогу получить необработанное письмо, полученное icloud, я его где-нибудь выложу. 2) Другие электронные письма принимаются правильно на веб-сайте icloud. Только в электронных письмах в формате HTML с моего сервера отсутствует тело.

Ответы (1)

Оказывается, проблема связана с заголовками контента и тем, как их интерпретируют почтовые клиенты.

Первоначально HEADER был установлен в значение, Content-Type: multipart/related;а тело было структурировано как

multipart/alternative
    text/plain
    text/html

Похоже, что клиенты iOS и Apple не смогли multipart/relatedправильно выполнить синтаксический анализ.

Я решил это, изменив заголовок, Content-Type: multipart/alternative;а затем структурировав тело как

    text/plain
    text/html

Вот почтовая библиотека, которую я использовал https://github.com/opencart/opencart/blob/1.5.5.1/upload/system/library/mail.php .

Аналогичное обсуждение здесь https://stackoverflow.com/questions/19497672/multipart-messages-включая-multiple-attachments-attachment-and-inline-wi

А здесь https://stackoverflow.com/questions/7766943/mime-multipart-related-structure-and-apple-mail-is-it-a-bug

Последующие действия: по-видимому, у некоторых клиентов с этой проблемой все еще возникают проблемы. Если у кого-то есть четкое объяснение, поделитесь.