4

在 iPhone 上时,多部分消息无法在 gmail 上正确显示。我有:

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

我也用过:

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

但是在这两种情况下,当从 iPhone 读取 gmail 时,我都会收到“MIME 附件”的消息……没有 html,甚至无法读取 MIME 附件。如果我不添加文本部分,该消息将正常显示...

有任何想法吗?

4

3 回答 3

8

我知道这篇文章很老了,但如果有人像我一样在谷歌上找到这个,上面的问题是我的类型定义。正确的 mime 类型是 text/plain 而不是 plain/text,如下所示:

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

对我有用的最终版本如下所示:

$message->setBody($this->body, 'multipart/alternative');
$message->addPart($this->body, 'text/html');
$message->addPart($this->text_body, 'text/plain');
于 2012-10-31T17:52:07.413 回答
6

你需要做:

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

我刚刚遇到了完全相同的问题,这在 Mac 邮件应用程序、iPhone 邮件应用程序和 Horde(网络邮件,它以纯文本形式出现。)

于 2012-05-15T13:45:45.533 回答
1

我必须查看电子邮件的源代码才能为您提供问题的原因。

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

据我所见,目前还没有符合 RFC 规定的电子邮件类。我自己构建了一个 SMTP 服务器,并在其中内置了一个 SMTP 服务器,因此它直接发送电子邮件,而不是通过 mail()。

于 2012-05-14T19:13:28.907 回答