laravel에서 이메일 알림(SendGridAPI) 구현

7413 단어 LaravelDockerSendGrid
laravel에서 조회표를 만들고 입력한 내용을 메일로 알려야 하기 때문에 배운 내용을 남겨 주십시오.(WebAPI를 통해)

SendGrid APIKey 가져오기


먼저 SendGrid 계정을 만듭니다.
API 키를 발행합니다.발행 페이지는 이해하기 어렵지만 제 페이지 왼쪽에 있는 메뉴 표시줄의 설정 안에 있습니다.

CreateAPIKey 를 클릭하여 다음 화면으로 이동한 후 API 키 이름을 지정합니다.여기는'laravel'입니다.메일만 보내기 때문에 API 키 Permissions는 Restricted입니다.

여기도 메일만 보내면 돼요.만들기 및 보기로 이동합니다.

APIKey를 표시해야 합니다.클릭하면 복사할 수 있습니다.한 번만 보이기 때문에 복사하는 것을 잊지 마세요.

env 파일은 API 키, 메일 드라이버 (여기는 SendGrid), From 주소, From 이름을 설명합니다.
기본적으로 SendGrid를 드라이버로 지정할 수 없지만 패키지를 만드는 사람이 있기 때문에composer를 사용하여 설치합니다.
감사합니다(문제가 있으면 삭제하십시오.)
MAIL_DRIVER=sendgrid
SENDGRID_API_KEY='コピーしたAPIKey'
MAIL_FROM_ADDRESS=送信元メールアドレス
MAIL_FROM_NAME="送信元の名前"

기본 생성 가능


드디어 설치 부분입니다.유지보수 클래스를 만듭니다.php artisan make:mail SendGridSampleApp/Mail/SendGridSample이라는 파일을 만들 수 있습니다.편집하기
(잊지 말고 아까 고마웠던 기사님의use도 기록해 주세요.)
build 제작 방법, 그 중에서 쓰기 처리.
from은 env 파일에 쓰기 때문에 여기에 쓰지 않아도 됩니다.
SendGridSample.php

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Sichikawa\LaravelSendgridDriver\SendGrid;

class SendGridSample extends Mailable
{
    use SendGrid;

    /**
     * Create a new message instance.
     *
     * @return void
     */
     // 引数で受け取ったデータ用の変数
     protected $contact;

    public function __construct($contact)
    {
        // 引数で受け取ったデータを変数にセット
        $this -> contact = $contact;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this
        ->view('emails.email') //呼び出すテンプレートを指定
        ->subject('お問い合わせ内容確認') //件名
        ->with(['contact' => $this -> contact]) //withオプションでセットしたデータをテンプレートに渡す
        ]);
    }
}



service.php 파일에 env의 SENDGRID_ 포함API_KEY의 사용을 기술하다.
service.php
[  
    'sendgrid' => [
      'api_key' => env('SENDGRID_API_KEY')
   ]
];

메시지 템플릿 만들기


이름, 우편 주소, 받은 상담 내용의 간단한 것을 되돌려줍니다.

  <div class="row">
    <h1>お問い合わせ内容を受け付けました。</h1>
  </div>

<br>
・お名前<br>
{{ $contact['name'] }}様<br>
<br>
・メールアドレス<br>
{{ $contact['email'] }}<br>
<br>
・お問い合わせ内容<br>
{!! nl2br(e($contact['post'])) !!}<br>

  <div class="row">
    <p>お問い合わせありがとうございました。</p>
  </div>

컨트롤러 편집


ContactController.php
<?php

// 作成したメールクラスをuseする
use Illuminate\Support\Facades\Mail;
use Sichikawa\LaravelSendgridDriver\SendGrid;



    public function send(Request $request)
    {
        \Mail::to($request -> email)
        ->send(new SendGridSample($request));

    }

이렇게 하면 상담 완료 메일을 보낼 수 있다.

좋은 웹페이지 즐겨찾기