luqita
luqita

Reputation: 4087

Multipart email with swift

Multipart messages are not being correctly shown on gmail when on the iPhone. I have:

$message->setBody($this->body, 'text/html');
$message->addPart($this->text_body, 'plain/text');

I have also used:

$message->addPart($this->body, 'text/html');
$message->addPart($this->text_body, 'plain/text');

But in both cases, when reading gmail from the iPhone I get the message as a 'MIME-attachment'... No html and the MIME-attachment cannot even be read. The message will display fine if I don't add the text part...

Any ideas?

Upvotes: 4

Views: 3347

Answers (3)

Olivier Party
Olivier Party

Reputation: 81

I know this post is quite old, but in case someone finds this on Google like I did, the problem above is the mine-type definition. The correct mime-type is text/plain and not plain/text, like so :

$message->addPart($this->text_body, 'text/plain');

The final version that worked for me looks like this :

$message->setBody($this->body, 'multipart/alternative');
$message->addPart($this->body, 'text/html');
$message->addPart($this->text_body, 'text/plain');

Upvotes: 8

Yuriy
Yuriy

Reputation: 398

You need to do:

$message->setBody($your_plain_text_email_here);
$message->addPart($your_html_email_here, 'text/html');

I just had the exact same question and this worked for me on the Mac mail app, iPhone mail app and Horde (webmail, it came up as plain text.)

Upvotes: 6

transilvlad
transilvlad

Reputation: 14532

I would have to see the source code of the email to be able to provide you with a reason why you have problem.

$message->setBody($this->body, 'multipart/alternative');
$message->addPart($this->body, 'text/html');
$message->addPart($this->text_body, 'plain/text');

As far as I have see so far there is no email class out there that respects the RFC regulations. I built my own and also built in a SMTP server into it so it sends the email directly not via mail().

Upvotes: 1

Related Questions