Pregunta

First of all, hello,

With SwiftMailer, i'm sending HTML+PLAIN emails.

On outlook, when displaying this email as plain text, this is not my plain text part showing up, but a automatic parsed version of the HTML.

Does anyone know how to force Outlook to use the text/plain part of message when displaying plain text?

My code does the following:

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

$body has some formatting and images:

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 contains a very clean text (thanks javon):

vardump($plain_body);

"Hello Ninj!

You requested a confirmation by email..."

But in the plain text version viewed in Outlook, i see instead all the alt attributes of pics of the HTML version, one by line, then some lightly formatted text:

Company Name

border

Mr Somebody

Hello Ninj!

You requested a confirmation by email...

Footer

Thank you by advance for everyone able to help :)

¿Fue útil?

Solución

Can't do that. Outlook keeps all 3 body flavors (HTML, RTF, plain text) in sync. This is done on the store provider level.

When it receives a MIME message, it uses the HTML body (if available). When the message is saved, the store provider uses the HTML body to generate the plain text body (PR_BODY property).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top