我使用Laravel 4.2覆蓋sendSwiftMessage()Laravel Swiftmailer定製
通過user3158900給出的答案是Laravel 5. * 任何一個可以幫助我的4.2版本?
我想用我自己的函數重寫sendSwiftMessage()受保護的函數。
sendSwiftMessage()位於
「供應商/ laravel /框架/ SRC /照亮/郵件/ Mailer.php」
我創建了一個
Lib/Mailer/CustomMailer.php
並將文件夾Lib設置爲在作曲家(PSR4)中自動加載。 我現在可以通過編寫在我的控制器中調用/加載我的功能:
new Lib \ Mailer \ CustomMailer;
這是我的文件看起來像:
Mail::send(xxxx);
:
<?php namespace Lib\Mailer;
class CustomMailer extends \Illuminate\Mail\Mailer {
/**
* Send a Swift Message instance.
*
* @param \Swift_Message $message
* @return void
*/
protected function sendSwiftMessage($message)
{
if (strpos($message->toString(), '[email protected]') == true) {
Log::info('Not sending mail to [email protected]');
}
else
{
if ($this->events)
{
$this->events->fire('mailer.sending', array($message));
}
if (! $this->pretending)
{
$this->swift->send($message, $this->failedRecipients);
}
elseif (isset($this->logger))
{
$this->logMessage($message);
}
}
}
}
然而,當我與Swiftmailer在我的控制器做實例發送電子郵件沒有使用該sendSwiftMessage()函數
我的問題:我如何使Swiftmailer/Laravel在發送消息時使用我自定義的sendSwiftMessage()函數,如果我不想修改當前所有的控制器使用Mail :: send()代碼
user3158900的答案是Laravel 5. * 任何人都可以幫助我使用4.2版本? – raphjutras