Php Laravel 5.1中发送电子邮件的性能问题
我使用以下代码在Laravel 5.1中发送电子邮件Php Laravel 5.1中发送电子邮件的性能问题,php,laravel-5,laravel-5.1,Php,Laravel 5,Laravel 5.1,我使用以下代码在Laravel 5.1中发送电子邮件 Mail::send('Project.Emails.Award', $data, function($message) { $message ->to('EmailAddress', 'EmailAddress') ->subject('hi'); }); 这里的问题是,上述功能需要至少5秒钟才能完成处理 问题:是否存在不需要等待响应的异步方法 赏金更新 有人可以为本
Mail::send('Project.Emails.Award', $data, function($message)
{
$message
->to('EmailAddress', 'EmailAddress')
->subject('hi');
});
这里的问题是,上述功能需要至少5秒钟才能完成处理
问题:是否存在不需要等待响应的异步方法
赏金更新
有人可以为本地主机和GoDaddy上的排队设置提供分步指导原则?根据您正在使用或必须使用的邮件驱动程序,可能还有其他选项来提高性能。然而,保持UI响应性的最有效方法是 对于您的代码,这将非常简单:
Mail::queue('Project.Emails.Award',$data,function($message)
{
$message
->收件人('EmailAddress','EmailAddress')
->主语(“hi”);
});
不过,您需要进行设置,但在某些托管服务器上无法正确执行此操作。我应Helper的请求发布此消息,并演示一种API方法 因为他们想要的是免费使用的东西,这可能是最好的选择,因为你每个月可以免费收到10000封电子邮件,然后再为每封邮件支付少量费用 现在就集成到Mailgun中,所以开始就很容易了 首先,您只需注册一个Mailgun帐户并设置您的域:
composer require“Guzzle http/Guzzle=~5.0”
config/services.php
文件与下面的配置匹配,这样我们就可以安全地保存详细信息,并将其存储在.env
文件中.env
文件中,并用正确的值填充它们Mail::send()
命令像以前一样发送电子邮件-但是现在它将是即时的(取决于你的服务器-我的非常基本,可以立即发送电子邮件):
您使用的是什么邮件驱动程序?您是否考虑过使用基于API的邮件提供程序?像曼德里尔或邮枪之类的东西。这意味着您不必等待消息发送,也不必担心在您的终端排队,而且它既便宜又免费。@James:您可以添加示例代码,以便在Laravel 5.2中使用它吗?我会接受的。@Helper你是在举一个使用电子邮件队列或使用基于api的电子邮件提供程序并以这种方式发送电子邮件的例子吗?我很乐意为api发送提供设置,但以前从未实际使用过电子邮件队列。我曾经查看过它,但最终选择使用基于api的提供程序,因为它可以节省我的排队时间,并让提供程序为我管理。无需使用
Mail::queue
。我正在寻找任何可以免费使用的东西。是否有其他100%免费使用的选项?
'mailgun' => [
'domain' => env('MAILGUN_DOMAIN'),
'secret' => env('MAILGUN_SECRET'),
],
MAIL_DRIVER=mailgun
MAIL_HOST=smtp.mailgun.org
MAIL_PORT=587
MAIL_USERNAME=XXX
MAIL_PASSWORD=XXX
MAIL_ENCRYPTION=tls
MAILGUN_DOMAIN=THE-DOMAIN-SETUP-IN-MAILGUN
MAILGUN_SECRET=THE-API-KEY-FOR-DOMAIN
Mail::send('Project.Emails.Award', $data, function($message)
{
$message
->to('EmailAddress', 'EmailAddress')
->subject('hi');
});