2017-01-02 50 views
1

我使用SwiftMailer類根據我的應用程序的配置(開發或生產)使用php mail()函數或SMTP發送郵件。我的代碼如下所示:Swift_Transport_MailTransport類自5.4.5版開始不再使用,並將在6.0中刪除。使用Sendmail或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我得到這個取消通知:

異常:未知錯誤(16384):自5.4版本Swift_Transport_MailTransport 類已被棄用。 5並將在6.0中刪除。 改爲使用Sendmail或SMTP傳輸。

我應該使用Swift_SendmailTransport,因爲我正在使用Swift_MailTransport?它會在相同的環境下工作嗎?它是否也使用php mail()函數?如果沒有,是不是可以使用SwiftMailer的php mail()函數了?

回答

1

首先,關於從快捷郵件網站折舊:

這是建議用戶不要使用此運輸如果因爲一些插件的功能部件的所有可能的 不能配合使用 此由於PHP本身的內部接口導致的傳輸。

由於PHP內部mail()函數的侷限性,使用此傳輸的錯誤報告級別令人難以置信, 。你會得到 發送一個全或無的結果。

如果你需要100%兼容的解決方案,你需要檢查php.ini設置和操作系統平臺http://php.net/manual/en/mail.configuration.php

對於UNIX平臺將足以叫->setCommandini_get("sendmail_path")值。對於windows平臺的支持需要檢查smtp選項。

相關問題