邮箱示例
在控制器中添加如下方法:
①纯文本发送
use Illuminate\Support\Facades\Mail;
public function test1()
{
$res=Mail::raw('邮箱内容,我是001,你是谁呢?',function ($message){
$message->subject('我的标题是什么呢,你猜猜看?');
$message->to('19***@qq.com');
});
}
②html发送,其中name参数是下发到模板中的参数,对应的模板相应对应的是邮箱发送的内容
use Illuminate\Support\Facades\Mail;
public function test2()
{
$res=Mail::send('test.test2',['name'=>'bigzomliao'],function($message){
$message->subject('邮件标题 测试2');
$message->to(['19***@qq.com','22***@qq.com']);
});
}
③用以上两种方式发送邮箱,怎么加入到队列中呢?
在黑窗口执行命令php artisan make:job SendEmail在Jobs创建SendEmail.php,其中的内容示例:
namespace App\Jobs;
use function foo\func;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Mail;
class SendEmail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $email;
/**
* Create a new job instance.
* @return void
*/
public function __construct($email)
{
$this->email=$email;
}
/**
* Execute the job.
* @return void
*/
public function handle()
{
Mail::raw('队列测试',function($message){
$message->to($this->email);
});
}
}
使用这个队列做邮箱测试。在控制器中创建一个test3方法:
use App\Jobs\SendEmail;
public function test2()
{
$this->dispatch(new SendEmail('19***@qq.com'));
}
最后需要开启队列的监听:php artisan queue:work
------------------------------------------------------------------------------------------------------------------------
创建邮箱单独处理类 参考示例app/Mail/MailExample.php
php artisan make:mail MailExample,在Mail文件下创建一个MailExample.php,使用它,在控制器中创建一个test4()方法:
use App\Mail\MailExample;
public function test4()
{
$res=Mail::to(['name'=>'19****@qq.com','email'=>'19***@qq.com'])->send(new MailExample());
}
备注:其中name和emil要相同,才能发送成功。
添加到队列中:
use App\Mail\MailExample;
public function test4()
{
$res=Mail::to(['name'=>'19****@qq.com','email'=>'19***@qq.com'])->queue(new MailExample());
}