发送电子邮件以回复任何无效的电子邮件

时间:2018-11-22 13:32:48

标签: laravel email lumen swiftmailer

我已使用以下库发送电子邮件:

"illuminate/mail": "5.2.*"

我的用于发送电子邮件以回复任何电子邮件的代码:

$sent = Mail::send([], [], function ($msg) use ($data) {
            $msg->from($data["from_address"], $data["from_name"])
                ->to($data["to_address"])->subject($data["subject"])->setBody($data["body"]);
            if (isset($data["cc_address"])) {
                $msg->cc($data["cc_address"]);
            }
            if (isset($data["bcc_address"])) {
                $msg->bcc($data["bcc_address"]);
            }
            if (isset($data["attachment"])) {
                foreach ($data["attachment"] as $attachment) {
                    $msg->attach($attachment['file'], $attachment['options']);
                }
            }
            if (isset($data["message_id"])) {
                $msg->getSwiftMessage()->getHeaders()->addCustomHeader("In-Reply-To", $data["message_id"]);
                $msg->addCustomHeader("References", $data["message_id"]);
            }
        });

我在此处传递了要在标题中发送答复的电子邮件的消息ID,但它给我以下错误:

FatalErrorException in EmailCompose.php line 121:
Call to undefined method Swift_Mime_SimpleHeaderSet::addCustomHeader()

如果我使用方法addTextHeader而不是addCustomHeader,则会给我以下错误:

ErrorException in Message.php line 296:
call_user_func_array() expects parameter 1 to be a valid callback, class 'Swift_Message' does not have a method 'addTextHeader'

请告诉我如何回复任何电子邮件?


根据建议,我已更改以下条件的代码

if (isset($data["message_id"])) {
                $msg->getSwiftMessage()->getHeaders()->addTextHeader("In-Reply-To", $data["message_id"]);
                $msg->getSwiftMessage()->getHeaders()->addTextHeader("References", $data["referances"].$data["message_id"]);
            }

此代码允许我发送电子邮件,但不能重播到任何电子邮件,但它将作为新电子邮件发送

如何将重播电子邮件发送到任何电子邮件。

请帮助我解决此问题,我将为您提供最佳答案。


我找到了解决方法,

在下面更改

$msg->getSwiftMessage()->getHeaders()->addTextHeader("References", $data["referances"].$data["message_id"]);

$msg->getSwiftMessage()->getHeaders()->addTextHeader("References", $data["referances"]." , ".$data["message_id"]);

和主题应该与您要重播的电子邮件相同,仅在您要答复的电子邮件主题上附加“ Re:”

它解决了我的问题

但是另一个问题是如何在重播电子邮件时获取先前电子邮件的电子邮件正文

0 个答案:

没有答案