更正回复和转发电子邮件的标题

Pet*_*ter 14 php email email-headers

你是那个了解电子邮件的程序员吗?你能想到邮件标题,闭着眼睛写它们吗?也许你可以帮我解决这个问题.

让我解释 ...

工作流程

  • 邮件服务器接收电子邮件
  • PHP cronjob将所有来自IMAP的电子邮件导入MySQL数据库
  • 用户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()
            )
        )
    )
;
Run Code Online (Sandbox Code Playgroud)

这很好用.如果提交了上述电子邮件,我会在IMAP发送文件夹中创建一封新电子邮件.反过来,它由PHP cronjob导入并放入MySQL数据库.它显示在我的应用程序中的已发送文件夹中.

问题

现在您对我的应用程序的工作方式有了一个大概的了解,我有一些我不太确定的事情.

  • 如何使用SwiftMailer创建对导入电子邮件的回复.
  • 如何使用SwiftMailer转发导入的电子邮件

我想将我的应用程序用作真正的邮件客户端,并希望正确设置邮件头等.

我当然可以发送一封电子邮件,其中包含原始邮件正文,主题前面带有"RE:".但我不确定是不是全部.我不知何故怀疑我需要做更多.

简而言之

我如何使用SwiftMailer来回复或转发保存在数据库中的电子邮件?

更新

我按照这个问题的答案建议实现了回复标题.我不确定这是否也适用于转发.我只是想确保邮件提供商不会阻止我的电子邮件,因为标题不正确.

Jul*_*dic 10

我比较了"第一"电子邮件和回复之间标题的差异.

要做出回复,您似乎要在回复标题中添加两行:

  • In-Reply-To:[Message-ID](在第一封邮件的标题中找到Message-ID)

  • 参考文献:[Message-ID]

很明显,你必须改变from,并to在回复电子邮件.(我认为SwiftMailer自己创造了其他人)

要使用SwiftMailer在电子邮件标题中添加行,请按以下步骤操作:

$headers = $message->getHeaders();

$headers->addTextHeader('In-Reply-To', $previousEmail->getHeaders()->getMessageId());
Run Code Online (Sandbox Code Playgroud)

我放的这个吸气器就是我想象你的电子邮件实体.

对于前锋,juste打印电子邮件的来源并检查差异.

希望它可以帮助.


更新:

对于前锋:这是完全相同的事情.我只是比较了两个标题.

你要添加In-Reply-ToReferences.

并回答您的更新:您可以将任何您想要的内容(显然是字符串)放在电子邮件标题中.如果您在其中添加未知变量,垃圾邮件分数将不会增长.