SwiftMail 生成的电子邮件在多部分电子邮件中显示 text/plain 部分而不是 gmail 中的 text/html

SwiftMail generated email shows text/plain part in multipart email rather than text/html in gmail

我正在使用以下内容生成 SwiftMail 消息(请原谅包装器)

$message = $mailHelper->createMessage(); // This is an instance of Swift_Message
$message->setTo($addresses)
        ->setFrom([$template->getEmail() => $template->getName()])
        ->setSubject($template->getSubject())
        ->setBody($template->getTextContent($twig, $replacements), 'text/plain');
$message->addPart($template->getHtmlContent($twig, $replacements), 'text/html');

$mailHelper->sendMessage($message)

我收到的邮件正常,但在 gmail 中显示的是文本版本。所有编码对我来说都是正确的。

Return-Path: <[email]>
Received: from [127.0.0.1] (ec2-54-149-246-93.us-west-2.compute.amazonaws.com. [54.149.246.93])
        by smtp.gmail.com with ESMTPSA id kv7sm1686300pab.20.2015.09.10.09.11.03
        for <[email]>
(version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128);
        Thu, 10 Sep 2015 09:11:04 -0700 (PDT)
Message-ID: <bf6b3e989767a5cab5ebf8ddbfc27040@swift.generated>
Date: Thu, 10 Sep 2015 16:11:03 +0000
Subject: Welcome to [App]
From: [Company] <[email]>
To: "[email]" <[email]>
MIME-Version: 1.0
Content-Type: multipart/alternative;
 boundary="_=_swift_v4_1441901463_d2266ae39e8919de6200347d60861abb_=_"


 --_=_swift_v4_1441901463_d2266ae39e8919de6200347d60861abb_=_
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

[url]

--_=_swift_v4_1441901463_d2266ae39e8919de6200347d60861abb_=_
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<a href=3D"app://[url]">[url]</a>

--_=_swift_v4_1441901463_d2266ae39e8919de6200347d60861abb_=_--

原来有两个错误。

1) 在 href 中使用自定义模式(我从上面的示例中删除了它,因为我认为它很敏感)。我猜 gmail 认为该架构很危险,然后删除了锚点。这其实是一件好事。

2) 事实上我看到的是 html 版本的内容,唯一剩下的就是 url,这也是文本版本中的内容。

TL;DR: 不要在电子邮件中为您的移动应用程序使用自定义架构。先通过浏览器路由。