您是了解电子邮件的程序员吗?您可以梦见邮件头,闭着眼睛写吗?也许您可以帮助我解决这个问题。
让我解释 ...
Inbox
在我的应用程序中找到所有电子邮件在同一应用程序中,用户可以发送新电子邮件。我已经使用以下代码段进行了处理。
$message = \Swift_Message::newInstance()
->setSubject($form->get('subject')->getData())
->setFrom('[email protected]')
->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数据库。它显示在我的应用程序的已发送文件夹中。
既然您对我的应用程序的运行方式有了一个大致的了解,那么我有一些不确定的事情。
我想将我的应用程序用作真实的mailclient,并希望正确设置邮件头等。
我当然可以只发送带有原始邮件正文的电子邮件,并且主题前面带有“ RE:”。但我不确定是否就这些。我以某种方式怀疑我需要做更多的事情。
如何使用SwiftMailer回复或转发保存在数据库中的电子邮件?
我按照此问题的答案中的建议实现了回复标头。但是,我不确定这是否也适用于转发。我只是想确保邮件提供者不会因为标题错误而阻止我的电子邮件。
我比较了“第一封”电子邮件和一封回复中标头的区别。
要进行回复,您似乎必须在回复标题中添加两行:
回复中:[Message-ID](在第一封邮件的标题中找到Message-ID)
参考:[Message-ID]
显然,您必须更改回复电子邮件中的from
和to
。(我认为SwiftMailer会自己创建其他人)
要使用SwiftMailer在电子邮件标题中添加行,请按照以下步骤操作:
$headers = $message->getHeaders();
$headers->addTextHeader('In-Reply-To', $previousEmail->getHeaders()->getMessageId());
我输入的这个getter就是我对您的电子邮件实体的想象。
对于转发,juste打印电子邮件的来源并检查差异。
希望能有所帮助。
更新 :
对于转发:这是完全一样的事情。我只是比较了两个标题。
您必须添加In-Reply-To
和References
。
并回答您的更新:您可以将所需的任何内容(显然是字符串)放在电子邮件标题中。如果在其中添加未知变量,垃圾邮件分数将不会增加。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句