你是那个了解电子邮件的程序员吗?你能想到邮件标题,闭着眼睛写它们吗?也许你可以帮我解决这个问题。
让我解释一下......
Inbox
中找到所有电子邮件在同一个应用程序中,用户可以发送新电子邮件。我已使用以下代码段处理了该问题。
$message = \Swift_Message::newInstance()
->setSubject($form->get('subject')->getData())
->setFrom('me@example.com')
->setTo($form->get('to'))
->setBody(
$this->renderView(
'MailBundle:Email:contact.html.twig',
array(
'ip' => $request->getClientIp(),
'name' => $form->get('to')->getData(),
'message' => $form->get('message')->getData()
)
)
)
;
这很好用。如果提交了上述电子邮件,我会在IMAP发送文件夹中创建一封新电子邮件。反过来,它由PHP cronjob导入并放入MySQL数据库。它显示在我的应用程序中的已发送文件夹中。
现在您对我的应用程序的工作方式有一个大概了解,我已经得到了一些我不太确定的事情。
我想将我的应用程序用作真正的邮件客户端,并希望正确设置邮件标题等。
我当然可以发送一封电子邮件,其中包含原始邮件正文和主题前面的" RE:"。但我不确定这是不是全部。我不知何故怀疑我需要做更多的事情。
我如何使用SwiftMailer回复或转发保存在数据库中的电子邮件?
我按照这个问题的答案中的建议实现了回复标题。我不确定这是否也适用于转发。我只是想确保邮件提供商不会阻止我的电子邮件,因为标题不正确。
答案 0 :(得分:9)
我比较了“第一个”电子邮件和回复之间标题的差异。
要做出回复,您似乎要在回复标题中添加两行:
In-Reply-To:[Message-ID](在第一封邮件的标题中找到Message-ID)
参考文献:[消息ID]
显然,您必须更改回复电子邮件中的from
和to
。 (我认为SwiftMailer自己创造了其他人)
要使用SwiftMailer在电子邮件标题中添加行,请按以下步骤操作:
$headers = $message->getHeaders();
$headers->addTextHeader('In-Reply-To', $previousEmail->getHeaders()->getMessageId());
我提出的这个吸气器就是我想象你的电子邮件实体。
对于前锋,juste打印电子邮件的来源并检查差异。
希望它可以提供帮助。
更新:
对于前锋:这是完全相同的事情。我刚比较了两个标题。
您需要添加In-Reply-To
和References
。
并回答您的更新:您可以将任何您想要的内容(显然是字符串)放在电子邮件标题中。如果您在其中添加未知变量,垃圾邮件分数将不会增长。