Как изменить текст имени отправителя при отправке почты с Swift_Message? - PullRequest
8 голосов
/ 09 июля 2011

Я использую SwiftMailer для отправки писем из моего приложения.

Пока все работает нормально. Теперь мне нужно иметь возможность динамически изменять текст отправителя. Фрагмент кода ниже и следующий абзац должны прояснить, что я имею в виду.

В настоящее время мой код выглядит так:

try{
   $message = Swift_Message::newInstance()
               ->setFrom($from)
               ->setTo($to)
               ->setSubject($subject)
               ->setBody($content);

   $mailer->send($message);
}catch (Exception $e) {
   // do something ...
}

Переменная $ from содержит адрес электронной почты отправителя - sysmail@mydomain.com

.

Однако я хочу отправлять ежедневные дайджесты (например) для разных сущностей (например, форумы, группы и т. Д.), Поэтому я хочу иметь возможность установить текст имени отправителя как «Ежедневный дайджест участников ABC форума», даже хотя отправитель по-прежнему sysmailer@mydomain.com. Я заметил, что linkedin делает что-то похожее - они отправляют разные дайджесты под разными именами отправителей, хотя отправитель всегда group-digests@linkedin.com.

Имя по умолчанию для sysmailer@mydomain.com - «Системная почта». Кстати, я использую Google Apps в качестве своего поставщика почтовых услуг. Для меня не практично настраивать разные учетные записи пользователей, поскольку пользователи могут создавать свои собственные форумы и т. д.

Есть ли способ, с помощью которого я могу динамически (то есть с помощью кода) указывать имя отправителя, хотя и с использованием одного и того же адреса электронной почты отправителя?

Ответы [ 2 ]

27 голосов
/ 09 июля 2011

Вам просто нужно передать $ from в виде массива.

$from = array($from_email => $from_name);

try{
   $message = Swift_Message::newInstance()
               ->setFrom($from)
               ->setTo($to)
               ->setSubject($subject)
               ->setBody($content);

   $mailer->send($message);
}catch (Exception $e) {
   // do something ...
}

Где вы меняете $ from_name для каждого из ваших почтовиков.

Надеюсь, это поможет!

2 голосов
/ 21 ноября 2016

Вы также можете использовать

$message = Swift_Message::newInstance()
           ->setFrom($email, $sender_name)
           ->setTo($to)
           ->setSubject($subject)
           ->setBody($content);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...