Swift 实现多部分邮件

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-attachment"消息...没有HTML,MIME-attachment甚至无法被读取。如果我不添加文本部分,消息将正常显示...有什么建议吗?
3个回答

8

我知道这篇帖子很旧了,但如果有人像我一样通过谷歌搜索到它,上面提到的问题是mine-type定义的问题。正确的mime-type应该是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');

你知道 $this->body$this->text_body 可以是 array,在这种情况下,我们应该在每个 $message->addPart 之前设置 $message->view - Mohammad Ali Akbari
这个答案和@Yuriy的有什么区别?为什么我应该选择这个?它似乎会将HTML body添加两次。 - mcont

6

您需要做的是:

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

我刚才也有同样的问题,这个方法适用于我的Mac邮件应用程序、iPhone邮件应用程序和Horde(Webmail,它以纯文本形式出现)。


1

我需要看一下邮件的源代码,才能告诉您为什么会出现问题。

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

到目前为止,据我所见,没有一个符合RFC规定的电子邮件类。 我自己构建了一个并将SMTP服务器集成进去,以便直接发送邮件而不是通过mail()函数发送。

你会更改电子邮件中HTML的内容类型吗?我将其设置为text/html...但我认为这是iPhone上的Gmail如何解释它的问题,因为从计算机上看起来很好,在iPhone上的Yahoo或Hotmail上也很好看。基本上问题只是减少到Gmail-iPhone,所以我倾向于使用标题、内容类型等方面的一些东西。 - luqita

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接