以下代码适用于我正在使用的服务器(Hosteurope WebPack):
mail('someone@example.net', 'some subject', 'sendmail is working', 'From: me@example.org', "");
以下代码不是:
$message = \Swift_Message::newInstance()
->setSubject('some subject')
->setFrom('me@example.org')
->setTo('someone@example.net')
->setBody('sendmail via swiftmail is working');
$mailer = $this->get('mailer');
$logger = new Swift_Plugins_Loggers_ArrayLogger();
$mailer->registerPlugin(new Swift_Plugins_LoggerPlugin($logger));
$mailer->send($message);
在$ logger中写入此错误:
++ Starting Swift_Transport_SendmailTransport
<<
!! Expected response code 220 but got code "", with message "" (code: 0)"
...
我的配置是:
swiftmailer:
transport: "sendmail"
sender_address: "me@example.org"
我不明白为什么一个人在工作而另一个人没有工作,因为据我所知,这个电话应该是相同的。
答案 0 :(得分:0)
问题是Sendmail传输不会发送From Header(如预期的那样)。 使用&#34; mail&#34;因为交通工具对我有用:
swiftmailer:
transport: "sendmail"
sender_address: "me@example.org"
希望这可以帮助其他人在使用Hosteurope和sendmail /发送邮件时遇到问题。
答案 1 :(得分:0)
如果您使用带有symfony的sendmail,则可能需要传递一些其他选项。例如:
'/usr/sbin/sendmail -t -i'
要找出必须传递的选项,请在服务器上创建phpinfo.php
<?php
phpinfo();
>
运行它并找到以:
开头的条目sendmail_from
sendmail_path
其中任何一个都会显示/usr/sbin/sendmail -some_options
为了让它在symfony中运行,您无法直接将其粘贴到config.yml
中 - 至少根据我的经验。
打开services.yml
并添加:
swiftmailer.mailer.default.transport:
class: Swift_SendmailTransport
arguments: ['/usr/sbin/sendmail -t -i']
其中arguments
是来自上面的php条目的路径。
然后将config.yml
设置为:
swiftmailer:
transport: sendmail
或者,如果您想将dev和prod env分开,请将其粘贴到其中一个中。