Php 回复和转发电子邮件的正确标题
你是那个懂电子邮件的程序员吗?你能梦见邮件标题,闭上眼睛写吗?也许你能帮我解决这个问题 让我解释一下 工作流程Php 回复和转发电子邮件的正确标题,php,email,email-headers,Php,Email,Email Headers,你是那个懂电子邮件的程序员吗?你能梦见邮件标题,闭上眼睛写吗?也许你能帮我解决这个问题 让我解释一下 工作流程 邮件服务器接收电子邮件 PHP cronjob将所有电子邮件从IMAP导入MySQL数据库 用户在我的应用程序的收件箱中查找所有电子邮件 发送电子邮件 在同一个应用程序中,用户可以发送新的电子邮件。我已经用下面的代码片段处理了这个问题 $message = \Swift_Message::newInstance() ->setSubject($form->get
- 邮件服务器接收电子邮件
- PHP cronjob将所有电子邮件从IMAP导入MySQL数据库
- 用户在我的应用程序的
收件箱中查找所有电子邮件
$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 sent文件夹中创建一封新电子邮件。这将由PHP cronjob导入并放入MySQL数据库。它显示在我的应用程序的“已发送”文件夹中
问题
既然您对我的应用程序的工作原理有了大致的了解,那么我就有一些不太确定的地方
- 如何使用SwiftMailer创建对导入电子邮件的回复
- 如何使用SwiftMailer转发导入的电子邮件
我实现了这个问题的答案中建议的回复标题。但我不确定这是否也适用于转发。我只是想确保邮件提供商不会因为邮件头不正确而阻止我的邮件。我比较了“第一封”邮件和回复邮件头的区别 要进行回复,似乎必须在回复标题中添加两行:
- 回复:[邮件ID](在第一封邮件的邮件头中找到邮件ID)
- 参考:[消息ID]
从
和更改为
。(我认为斯威夫特梅勒自己创造了其他人)
要使用SwiftMailer在电子邮件标题中添加行,请按以下步骤进行操作:
$headers = $message->getHeaders();
$headers->addTextHeader('In-Reply-To', $previousEmail->getHeaders()->getMessageId());
这个getter就是我想象中的你的电子邮件实体
对于转发,只需打印电子邮件的来源并检查差异
希望能有所帮助
更新: 对于前锋来说:这完全是一回事。我只是比较了两个标题 您必须添加
以回复
和参考
回答你的更新:你可以把任何你想要的东西(显然是字符串)放在邮件头上。如果在其中添加未知变量,垃圾邮件分数将不会增加。您应该查看可能的(和常见的)标题。@m02ph3u5这正是我要寻找的,正确的标题以及使用SwiftMailer设置它们的正确方法。你能详细说明一下吗?我想说这和SwiftMailer一点关系都没有。它基本上就是您提到的SMTP协议。IMAP不是传输协议,而是邮箱存储访问器。电子邮件总是通过SMTP发送。我想我的问题很清楚。我想知道在回复或转发电子邮件时要设置什么样的标题,我想知道如何在SwiftMailer中做到这一点。没少,没多。我编辑了我的帖子来回答你们的更新。这确实很有帮助,但转发怎么样?在你们的一个电子邮件地址发送一封电子邮件。再次转发此电子邮件并打印每封电子邮件的来源。你只需要比较每封邮件的开头,就可以知道这两封邮件之间发生了什么变化。如果我今天有点时间的话,我会看看的。我有一个邮箱a,可以向邮箱B发送消息。我想回复那封电子邮件。我正在创建新邮件,将:
回复
和引用
标题设置为长邮件ID(从标题中获取)。将从
设置为邮箱B,将设置为
设置为邮箱A。我的主题是:Re:sometoreply
。电子邮件发送正确,但是目标邮箱(Gmail)没有将其与原始电子邮件链接。有什么问题吗?