首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel使用Mailables发送生日提醒电子邮件

Laravel使用Mailables发送生日提醒电子邮件
EN

Stack Overflow用户
提问于 2017-02-03 23:59:36
回答 1查看 3.5K关注 0票数 2

我正在建立一个应用程序,假设发送生日提醒电子邮件给用户。在laravel 5.2中一切都运行得很好,但现在我想使用Mailables,我不知道在哪里循环用户。这是我的邮寄类..

代码语言:javascript
复制
namespace App\Mail;
use App\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class BirthdayReminder extends Mailable
{
    use Queueable, SerializesModels;
    public $user;
    public function __construct()
    {
         $this->User = $user;
    }
    public function build()
    {
        $users = User::whereMonth('dob', '=', date('m'))->whereDay('dob', '=', date('d'))->get(); 
         foreach($users as $user) {    
          return $this->from('info@bandali.co.tz')
        ->view('emails.birthday')
        ->with(['user' => $user]);
    }

    }
}

这是我送生日的命令

代码语言:javascript
复制
namespace App\Console\Commands;

use Illuminate\Console\Command;
use App\User;
use App\Mail\BirthdayReminder;
use Mail;
use App;
class SendBirthdayReminderEmail extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'email:birthday';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Email users a birthday Reminder message';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {

   /*  $users = User::whereMonth('dob', '=', date('m'))->whereDay('dob', '=', date('d'))->get();   
    foreach($users as $user) {   
         // send an email to "batman@batcave.io"
        Mail::to('robertrutenge@gmail.com')->queue(new BirthdayReminder($user));


     }
     */
     $email="xxxxxxxx@gmail.com";
     Mail::to($email)->send(new BirthdayReminder());

    $this->info('Birthday messages sent successfully!');

    }
}

这是我的观点

代码语言:javascript
复制
<p>Hello Admin,</p>
<p>Today is {{$user['first_name']}} Birthday . Please take time and  wish  a happy birthday!</p>

我的Kernel.php

代码语言:javascript
复制
namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
        //

      Commands\SendBirthdayReminderEmail::class,

    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        // $schedule->command('inspire')
        //          ->hourly();
         $schedule->command('email:birthday')->everyMinute()->timezone('Africa/Dar_es_Salaam');
    }

    /**
     * Register the Closure based commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        require base_path('routes/console.php');
    }
}

我想在数据库中检查是否有生日的用户,然后将电子邮件发送给一个或多个用户。如果没有,则什么也不做。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-04 00:44:39

在命令文件中

代码语言:javascript
复制
public function handle()
{ 
   $i = 0;
   $users = User::whereMonth('dob', '=', date('m'))->whereDay('dob', '=', date('d'))->get();  

   foreach($users as $user)
   {
       $email="xxxxxxxx@gmail.com";
       Mail::to($email)->send(new BirthdayReminder($user));
       $i++; 
   }

   $this->info($i.' Birthday messages sent successfully!');
}

在你的Mailable类中

代码语言:javascript
复制
 public $user;
 public function __construct($user)
 {
     $this->user = $user;
 }

 public function build()
 {
  $user = $this->user;
  return $this->from('info@bandali.co.tz')
              ->view('emails.birthday',compact('user'));
 }

在您的刀片文件(birthday.blade.php)中

代码语言:javascript
复制
<p>Hello Admin,</p>
   <p>Today is {{ $user->first_name }} Birthday. Please take time and wish a happy birthday!</p>

希望这能有所帮助:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42028212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档