2012-03-02 2 views
2

Ранее я задавал аналогичный вопрос, но контекст немного изменился. Я хочу использовать swiftmailer для отправки электронной почты в Symfony 2. Проблема в том, что я использую SMTP-сервер gmail, поэтому, когда приходит мое сообщение, мой почтовый клиент показывает его с gmail.com, а не mydomain.com. Как я могу это исправить?Заголовки писем с swiftmailer и Symfony 2

$message = \Swift_Message::newInstance() 
     ->setSubject('Hello Email') 
     ->setFrom(array('[email protected]' => "Digest")) 
     ->setSender(array('[email protected]' => "Digest")) 
     ->setCharset('iso-8859-1') 
     ->setContentType('text/html') 
     ->setTo('[email protected]') 
     ->setBody($this->renderView('email.html.twig', array())); 

$this->get('mailer')->send($message); 
+0

Если я прав, gmail не разрешает отправлять электронные письма с другим доменом, кроме gmail. Полагаю, ограничение для борьбы со спамерами. Если вы хотите, чтобы кто-то отвечал на другой домен, вы можете добавить '$ message-> setReplyTo ('[email protected]')' и вернуть заголовок пути: '$ headers-> addTextHeader ('Return-Path', 'new .email @ example.com '); ' – piotrekkr

+0

Вы не можете установить' Return-Path', агент доставки должен установить этот заголовок. – tripleee

ответ

1

SMTP-сервер Gmail позволяет отправлять почту только с адреса электронной почты, с которым вы аутентифицируетесь. Так что если вы настроили Symfony с

mailer_transport: gmail 
mailer_user: [email protected] 
mailer_password: ****** 

Все ваши сообщения мы будем смотреть, как они из [email protected]

Что вы можете сделать, может быть, это использовать другой сервер SMTP, который является более гибким в типах адресов отправителя они позволят. Если вы на локальном сервере разработки, вы можете использовать свой SMTP-сервер провайдера, или использовать одну из различных по электронной почте в качестве поставщика услуг, таких как Sendgrid, Mailjet или postmarkapp

Они позволяют отправлять сообщения с любого адреса вы можете подтвердить право собственности, после некоторых шагов настройки.

Возможно, стоит попробовать также, если вы действительно хотите использовать SMTP-сервер gmail, определить ваш адрес из вашей конфигурации «Отправить почту как» Gmail (в настройках -> Учетные записи). Это позволит вашему приложению отправлять электронную почту, используя сконфигурированные адреса в поле From:.

+0

Ответит на это. Спасибо приятель. – CaptainStiggz