Bạn đang muốn làm chức năng email marketing trên laravel, có thể gửi email hàng loạt từ file excel, hay database,hẹn giờ gửi email tự động trên laravel,Sau đây hãy cùng SonWeb tìm hiểu cách làm cụ thể nhé.
Gửi Email trong Laravel dùng SendGrid
Nếu như bạn muốn tránh rủi ro khi gửi mail dùng gmail cho vào spam , hay gửi email số lượng lớn, có thể dùng 1 số dịch vụ cung cấp api hay smtp ổn định như Sendgrid,MailGun,Postmark,SES,…
Để gửi mail Laravel bằng Sendgrid bạn cần làm các bước sau:
1.Tạo tài khoản Sendgrid :
Bạn vào website: SendGrid tiến hành đăng ký , kích hoạt tài khoản.Sendgrid yêu cầu thông tin khá chi tiết , bạn cần điền đầy đủ thông tin , check thông tin kích hoạt,
Sau khi đăng ký tài khoản, bạn kiểm tra email và click vào xác nhận đăng ký email.
Tới đây việc đăng ký tài khoản đã hoàn tất.
2.Config Sendgrid trong Laravel
Để gủi email qua Sendgrid, bạn cần tạo Sender , và Api keys để cấu hình cho ứng dụng .Trước tiên bạn cần tạo 1 api sendgrid qua các bước sau:
Truy ập Settings -> Api key , click button Create ApiKey. Ở màn hình tạo key bạn đặt tên cho key name chọn API Key Permissions, sau đó click Create & Views.
Bạn nhớ lưu key lại đề dùng cho các ứng dụng muốn gửi mail qua Sendgrid, qua laravel hoặc WordPress.
3.Tích hợp Sendgrind vào Laravel
Sau khi đã có key từ Sendgrid , bạn mở file env ở thư mục gốc Laravel, và thêm đoạn code sau vào:
MAIL_MAILER=smtp MAIL_HOST=smtp.sendgrid.net MAIL_PORT=587 MAIL_USERNAME=apikey MAIL_PASSWORD=SG.P0wIN9pCTp6Vs_Q7IRL1cg.EAPj.... MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=info@sonweb.net MAIL_FROM_NAME="SonWeb"MAIL_USERNAME: apikey(mặc định) MAIL_PASSWORD: key name tạo ở trên, MAIL_FROM_ADDRESS: mail sender tạo trên sendgrid , bạn phải nhập chính xác với mail sender trên sendgrid, nếu không sẽ báo lỗi. MAIL_FROM_NAME: Tên trong mail bạn muốn gửi di. Ghi chú: Phải tạo Sender Identity trên sendgrid và verify , mới có thể gửi mail được, Bạn có thể xem thêm hướng dẫn của Sendgrid tại đây: https://docs.sendgrid.com/for-developers/sending-email/laravel 3. Setup Gửi Mail laravel qua Route -> Mailable Bước 1: Tạo mailalbe php artisan make:mail MyTestMail Mở file: app/Mail/MyTestMail.php , update code:
<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; class MyTestMail extends Mailable { use Queueable, SerializesModels; public $details; /** * Create a new message instance. * * @return void */ public function __construct($details) { $this->details = $details; } /** * Build the message. * * @return $this */ public function build() { return $this->subject('Mail from sonweb.net') ->view('emails.myTestMail'); } }Bước 2: Tạo view hiển thị mail gửi: Mở thư mục views tạo thư mục emails và file myTestMail.blade.php resources/views/emails/myTestMail.blade.php
<!DOCTYPE html> <html> <head> <title>sonweb.net</title> </head> <body> <h1>{{ $details['title'] }}</h1> <p>{{ $details['body'] }}</p> <p>Thank you</p> </body> </html>Bước 3: Tạo Route gửi Email
Mở file routes/web.php
Route::get('send-mail', function () { $details = [ 'title' => 'Mail from sonweb.net', 'body' => 'This is for testing email using smtp' ]; \Mail::to('your_receiver_email@gmail.com')->send(new \App\Mail\MyTestMail($details)); dd("Email is Sent."); });Kiểm tra email nhận bạn sẽ thấy vậy là ok nhé:
Tham khảo thêm từ: https://www.itsolutionstuff.com/post/laravel-8-mail-laravel-8-send-email-tutorialexample.html
Gửi Email laravel dùng Gmail
Tương tự như trên bạn chi thay code config của sendgrid bằng gmail tương tự sau:
Mở file envMAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=465 MAIL_USERNAME=congtygiatai@gmail.com MAIL_PASSWORD=ikdunk... ( key từ gmail) MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=sontinhlt@gmail.com MAIL_FROM_NAME="${APP_NAME}"Xem Hướng dẫn cách tạo mật khẩu ứng dựng Gmail dễ dàng nhất