Swift_Transport_MailTransport类自版本5.4.5起不推荐使用,将在6.0中删除。改为使用Sendmail或SMTP传输

时间:2017-01-02 12:02:43

标签: php swiftmailer

我正在使用SwiftMailer类使用php mail()函数或SMTP发送邮件,具体取决于我的应用程序的配置(开发或生产)。我的代码如下所示:

// Default mailer: php mail() function
$this->transport = \Swift_MailTransport::newInstance();

// If a SMTP host is defined
if (isset($_SITE['site_smtp_host'])) {
    $this->transport = \Swift_SmtpTransport::newInstance($_SITE["site_smtp_host"], 587)
                    ->setUsername($_SITE["site_smtp_user"])
                    ->setPassword($_SITE["site_smtp_pass"]);
    }

自SwiftMailer 5.4.5以来,我收到了这个弃用通知:

  

异常:UNKNOWN ERROR(16384):Swift_Transport_MailTransport   class从版本5.4.5开始不推荐使用,将在6.0中删除。   改为使用Sendmail或SMTP传输。

我在使用Swift_SendmailTransport时应该使用Swift_MailTransport吗?它会在相同的环境下工作吗?它是否也使用php mail()函数?如果没有,是不是可以再使用SwiftMailer的php mail()函数了?

2 个答案:

答案 0 :(得分:1)

首先,关于swift邮件网站的弃用:

  

建议用户尽可能不使用此运输工具   由于许多插件功能不能与之配合使用   由于PHP本身的内部接口,这种传输。

     

此传输的错误报告级别非常弱,   再次由于PHP的内部mail()函数的限制。你会得到   发送的全有或全无结果。

如果您需要100%兼容的解决方案,则需要检查php.ini设置和操作系统平台http://php.net/manual/en/mail.configuration.php

对于unix平台,只需拨打->setCommand ini_get("sendmail_path")即可。对于Windows平台支持,需要检查smtp选项。

答案 1 :(得分:0)

这是完成的方式。请注意,并非所有服务器上的Sendmail路径都相同。

-chop WIDTHxHEIGHT+XOFFSET+YOFFSET