Swiftmailer 在开发模式下不向 delivery_addresses 发送电子邮件
Swiftmailer not sending emails to the delivery_addresses in dev mode
我无法向 config_dev.yml 中指定的电子邮件地址发送电子邮件:
swiftmailer:
delivery_addresses: ['dev@example.com']
我正在尝试从控制台命令发送:
php app/console ecard:task:run send --env=dev
控制台命令代码:
...
foreach ($emailQueue as $item) {
$transport = Swift_SmtpTransport::newInstance($item['smtp_host'])
->setPort($item['smtp_port'])
->setUserName($item['smtp_login'])
->setPassword($item['smtp_password'])
->setEncryption('ssl');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance()
->setSubject($item['email_subject'])
->setFrom($item['email_from'], $item['email_from_name'])
->setTo($item['email_to'])
->addPart($item['email_template'], 'text/html');
$ret = $mailer->send($message, $failedRecipients);
....
}
电子邮件被发送到真实的收件人地址,而不是我在 config_dev.yml 中指定的地址。
如果我在代码中转储 $this->getContainer()->getParameter('kernel.environment')
,它的 'dev'。
我没有通过这种方式获取 $mailer:$this->getContainer()->get('mailer')
,因为我想要 specify/change 循环中的 smtp 设置 - 配置存储在数据库中,而不是 parameters.yml。也许这就是问题所在?
(Symfony 版本 2.8.16,Swiftmailer 5.4.5)
如果您通过以下方式获得邮件:
$mailer = Swift_Mailer::newInstance($transport);
则忽略config.yml
.
中指定的所有参数
在这种情况下,您必须在代码中设置目标地址,就像您对其他邮件程序参数所做的那样,例如:
$message = Swift_Message::newInstance()
->setSubject($item['email_subject'])
->setFrom($item['email_from'], $item['email_from_name'])
->setTo($this->getContainer()->getParameter('swiftmailer.delivery_addresses')?:$item['email_to'])
->addPart($item['email_template'], 'text/html');
我无法向 config_dev.yml 中指定的电子邮件地址发送电子邮件:
swiftmailer:
delivery_addresses: ['dev@example.com']
我正在尝试从控制台命令发送:
php app/console ecard:task:run send --env=dev
控制台命令代码:
...
foreach ($emailQueue as $item) {
$transport = Swift_SmtpTransport::newInstance($item['smtp_host'])
->setPort($item['smtp_port'])
->setUserName($item['smtp_login'])
->setPassword($item['smtp_password'])
->setEncryption('ssl');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance()
->setSubject($item['email_subject'])
->setFrom($item['email_from'], $item['email_from_name'])
->setTo($item['email_to'])
->addPart($item['email_template'], 'text/html');
$ret = $mailer->send($message, $failedRecipients);
....
}
电子邮件被发送到真实的收件人地址,而不是我在 config_dev.yml 中指定的地址。
如果我在代码中转储 $this->getContainer()->getParameter('kernel.environment')
,它的 'dev'。
我没有通过这种方式获取 $mailer:$this->getContainer()->get('mailer')
,因为我想要 specify/change 循环中的 smtp 设置 - 配置存储在数据库中,而不是 parameters.yml。也许这就是问题所在?
(Symfony 版本 2.8.16,Swiftmailer 5.4.5)
如果您通过以下方式获得邮件:
$mailer = Swift_Mailer::newInstance($transport);
则忽略config.yml
.
在这种情况下,您必须在代码中设置目标地址,就像您对其他邮件程序参数所做的那样,例如:
$message = Swift_Message::newInstance()
->setSubject($item['email_subject'])
->setFrom($item['email_from'], $item['email_from_name'])
->setTo($this->getContainer()->getParameter('swiftmailer.delivery_addresses')?:$item['email_to'])
->addPart($item['email_template'], 'text/html');