我在邮件配置中将pretend
更改为true
。请查看http://laravel.com/docs/4.2/mail#mail-and-local-development
现在日志显示为这样的地址。
[2014-11-22 17:12:49] production.INFO: Pretending to mail message to: dinukathilanga@gmail.com, bbelekkaya@gmail.com [] []
但我也需要调试cc电子邮件。我该怎么做?
这是我的代码。
Mail::send($view, $data, function($message) use ($to, $cc, $subject)
{
foreach ($to as $toUser) {
$message->to($toUser['email'], $toUser['first_name'] . ' ' . $toUser['last_name']);
}
foreach ($cc as $ccUser) {
$message->cc($ccUser['email'], $ccUser['first_name'] . ' ' . $ccUser['last_name']);
}
$message->subject($subject);
});
答案 0 :(得分:0)
请允许我坦率地说。我是 Laravel 的新手,但我会尽力解释这一点。
我确实知道如何调试电子邮件平台,最简单的过程是通过 C 来完成。
我会尽量让自己成为傻瓜。
首先,尝试使用 laravel-debugbar (最新版本为4)。
这是一个能够过滤 PHP调试栏的应用程序
通过使用此应用程序,您将能够附加和编辑输出函数(此处是链接以获取更多信息:Debug bar。
如果这不起作用,请尝试通过 C 进行调试。
首先,您将通过插入调试选项选项-g 来编译 C 程序。
之后,您将gdb启动到平台中
第三,你打破 C 程序中的点,特别是插入 break line_number 函数。
之后,您将在gdp调试器中打印变量值。
例如,您可以键入命令,例如 print j 和(gdp)pi (我会发布我已经获得此功能的网站来自的信息;它将为您提供更广泛的演练)。
此过程有各种操作 我强烈建议您访问:Debug C program using gdb。希望这有帮助。
答案 1 :(得分:0)
为了这个例子,创建一个名为ExtendedMailer的新类,并将文件保存在自动加载器能够找到它的位置。根据您放置文件的位置,您可能需要在保存后运行composer dump-autoload
。
<?php
use Illuminate\Mail\Mailer;
class ExtendedMailer extends Mailer
{
protected function logMessage($message)
{
parent::logMessage($message);
$emails = implode(', ', array_keys((array) $message->getCc()));
$this->logger->info("Pretending to mail message to: {$emails}");
}
}
创建一个新的服务提供者,您的应用程序可以在某处加载类。如上所述,您可能需要运行composer dump-autoload
下面的代码只是扩展了原始的MailServiceProvider,但允许我们在IoC中绑定一个不同的类,你会注意到new ExtendedMailer
;我们之前创建的类。显然,如果您为该类命名,请在此处反映该更改。
<?php
use Illuminate\Mail\MailServiceProvider;
class ExtendedMailServiceProvider extends MailServiceProvider
{
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$me = $this;
$this->app->bindShared('mailer', function($app) use ($me)
{
$me->registerSwiftMailer();
// Once we have create the mailer instance, we will set a container instance
// on the mailer. This allows us to resolve mailer classes via containers
// for maximum testability on said classes instead of passing Closures.
$mailer = new ExtendedMailer(
$app['view'], $app['swift.mailer'], $app['events']
);
$this->setMailerDependencies($mailer, $app);
// If a "from" address is set, we will set it on the mailer so that all mail
// messages sent by the applications will utilize the same "from" address
// on each one, which makes the developer's life a lot more convenient.
$from = $app['config']['mail.from'];
if (is_array($from) && isset($from['address']))
{
$mailer->alwaysFrom($from['address'], $from['name']);
}
// Here we will determine if the mailer should be in "pretend" mode for this
// environment, which will simply write out e-mail to the logs instead of
// sending it over the web, which is useful for local dev environments.
$pretend = $app['config']->get('mail.pretend', false);
$mailer->pretend($pretend);
return $mailer;
});
}
}
在您的config / app.php中,您会找到一行类似
的行'Illuminate\Mail\MailServiceProvider',
您需要对其进行评论并在下面添加一行
'ExtendedMailServiceProvider',
这样做是用Laravel知道的邮件替换你刚刚创建的邮件程序。您刚创建的那个与默认的一个只是扩展它,并为logMessage函数添加了功能。