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转发导入的电子邮件
我想将我的应用程序用作真正的邮件客户端,并希望正确设置邮件标题等

当然,我可以只发送一封邮件,邮件正文和主题前面加上“RE:”。但我不确定是否就这些。我怀疑我需要做更多的事情

简言之 如何使用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)没有将其与原始电子邮件链接。有什么问题吗?