Отправить письмо в ответ на любое письмо не работает - PullRequest
0 голосов
/ 22 ноября 2018

Я использовал библиотеку ниже для отправки электронной почты:

"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"]);
            }
        });

Здесь я передал идентификатор сообщения электронной почты накоторый я хочу отправить ответ в заголовке, но он дает мне ошибку, как показано ниже:

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:» в тему сообщения, на которое хотите ответить

это решает мою проблему

, но другая проблема заключается в том, как получить тело письма предыдущих писем при воспроизведении письма

...