Вы тот программист, который знает все о письмах? Можете ли вы мечтать о почтовых заголовках, написать их с закрытыми глазами? Может быть, вы сможете помочь мне в этом вопросе.
Позволь мне объяснить …
Inbox
« 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() ) ) ) ;
Это прекрасно работает. Если отправлено вышеприведенное письмо, я создаю новое электронное письмо в папке, отправленной IMAP. Это, в свою очередь, импортируется PHP cronjob и помещается в базу данных MySQL. Он отображается в папке отправления в моем приложении.
Теперь, когда у вас есть общее представление о том, как работает мое приложение, у меня есть некоторые вещи, о которых я не очень уверен.
Я хотел бы использовать свое приложение в качестве реального почтового клиента и хочу, чтобы почтовые заголовки и т. Д. Были правильно настроены.
Я мог бы, конечно, просто отправить электронное письмо с оригинальным почтовым телом и субъектом, добавленным с помощью «RE:». Но я не уверен, что все. Я почему-то подозреваю, что мне нужно делать больше.
Как использовать SwiftMailer для ответа или пересылки электронной почты, которая сохраняется в базе данных?
Я применил заголовки ответов, как это было предложено в ответе на этот вопрос. Однако я не уверен, что это будет работать и для пересылки. Я просто хочу, чтобы почтовые провайдеры не блокировали мои электронные письма, потому что заголовки неверны.
Я сравнил, каковы различия в заголовке между «первым» электронным письмом и ответом.
Чтобы ответить, кажется, вам нужно добавить две строки в заголовок ответа:
In-Reply-To: [Message-ID] (с идентификатором сообщения, найденным в заголовке первой почты)
Ссылки: [Message-ID]
Очевидно, что вы должны изменить адрес электронной почты и от него. (Я думаю, что SwiftMailer создает других сам по себе)
Чтобы добавить строку в заголовок электронной почты с помощью SwiftMailer, выполните следующие действия:
$headers = $message->getHeaders(); $headers->addTextHeader('In-Reply-To', $previousEmail->getHeaders()->getMessageId());
Этот геттер, который я поставил, – это то, как я представляю ваш объект электронной почты.
Для форварда, juste распечатайте источник письма и проверьте различия.
Надеюсь, это поможет.
Обновить :
Для форварда: это точно то же самое. Я просто сравнил два заголовка.
Вы должны добавить In-Reply-To
и References
.
И ответить на ваше обновление: вы можете поместить все, что хотите (строка явно) в заголовок электронной почты. Счет спама не вырастет, если вы добавите в него неизвестную переменную.