2015-04-04 99 views
0

我只是建立一個簡單的系統信息。我想每週一自動發送郵件給用戶。如何在Laravel 5中自動發送電子郵件,有沒有一種工具可以解決我的問題?如何在Laravel 5中自動發送郵件

@bogdan這是我的代碼

控制器

public function send_email(){    
    $date = getdate(); 
    $date_now = date('Y-m-d',strtotime('now')); 
    $date_exp = date('Y-m-d', strtotime('+6 day')); 

    $certificate_data = Certificate::where('expired_date', '<=', $date_exp)->where('expired_date', '>=', $date_now)->get(); 

    foreach($certificate_data as $key => $certificate){ 
     $student_data = $certificate->student; 
     $student_company = Student::find($student_data->id)->company; 
     $data = ['com_nama' => $student_company->name, 'nama' => $student_data->name, 'judul'=>$certificate->title,'exp_date'=>$certificate->expired_date]; 
     $path_file = Config::get('custom_path.certificates').'/'. $certificate->image; 
     $test = Mail::send('emails.notification', $data, function($m) use($student_company,$path_file,$student_data,$certificate){ 
      $m->to($student_company->email); 
      $m->subject('Pemberitahuan Waktu Kadaluarsa Sertifikat'); 
      $m->attach($path_file, ['as' => $student_data->name.'-'.$certificate->title]); 
     });       
    } 

} 

在這裏的錯誤

enter image description here

回答

1

您可以使用Artisan Scheduling。在你的情況這樣的事情應該這樣做:

$schedule->call(function() 
{ 
    // Send emails here 

})->mondays(); 
+0

感謝您的幫助,但你能告訴我更多?也許更完整? sory for my english ... – 2015-04-05 02:33:15

+0

我在答案中鏈接的文檔解釋了設置調度程序所需的一切以及放置我編寫的代碼的位置,只需閱讀** Scheduling Artisan Commands **部分即可。如果您需要了解更多有關在Laravel中發送電子郵件的信息,請閱讀[郵件文檔](http://laravel.com/docs/5.0/mail),它對此非常清楚。 – Bogdan 2015-04-05 08:51:32

+0

@感謝bogdan,你太棒了。現在我有一個新問題,我想附加一些圖像到電子郵件,但有一個錯誤。 [ErrorException] 的fopen(資產/圖像/證書/ 05042015060646.JPG):未能打開流:沒有這樣的文件或目錄 顯示它在我的命令窗口 什麼錯? 如果我不使用時間表,它運行正常(附件圖像是成功的) – 2015-04-05 11:02:49