Почему Outlook не использует текстовую / простую часть?


Прежде всего, привет,

С SwiftMailer я отправляю HTML+простые электронные письма.

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

Кто-нибудь знает, как заставить Outlook использовать текстовую/обычную часть сообщения при отображении обычного текста?

Мой код делает следующее:

$plain_body = convert_html_to_text($body);
$message->setBody($body, 'text/html')
->addPart($plain_body, 'text/plain');

$body имеет некоторое форматирование и изображения:

vardump($body);

<html>
<head>...</head>
<body>
<img src="logo.png" alt="Company name" /><br />
<img src="border.png" alt="border" /><br />
<img src="face.png" alt="Mr Somebody" /><br />
<p>Hello Ninj!

You requested a confirmation by email...</p>
<img src="footer.png" alt="footer" />
</body></html>

$plain_body содержит очень чистый текст (Спасибо javon):

vardump($plain_body);

"Hello Ninj!

You requested a confirmation by email..."

Но в обычной текстовой версии, просматриваемой в Outlook, я вижу вместо этого все атрибуты alt фотографий HTML-версии, по одной строке, а затем некоторый слегка отформатированный текст:

Название Компании

Граница

Мистер Кто-То

Привет Ди!

Вы запросили подтверждение по электронной почте...

Подвал

Заранее спасибо всем, кто может помочь :)

1 3

1 ответ:

Не могу этого сделать. Outlook сохраняет все 3 варианта тела (HTML, RTF, обычный текст) в синхронизации. Это делается на уровне поставщика магазина.

Когда он получает сообщение MIME, он использует тело HTML (если доступно). При сохранении сообщения поставщик хранилища использует тело HTML для создания тела обычного текста (свойство PR_BODY).