Hướng dẫn gửi Email trong laravel dùng gmail và sendgrid

Hướng dẫn gửi Email trong laravel dùng gmail và sendgrid

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,

dang ký sendgrid

dang ký sendgrid

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 env
MAIL_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

Share this post


Chat Zalo

0932644183