laravel에서 이메일 알림(SendGridAPI) 구현
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 SendGridSample
App/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));
}
이렇게 하면 상담 완료 메일을 보낼 수 있다.
Reference
이 문제에 관하여(laravel에서 이메일 알림(SendGridAPI) 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ysg/items/413458323439ea372597텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)