Laravel5.6 메일 발송 기능의 제작 방법
하고 싶은 일
Laavel에서 메일 발송 기능을 실현하는 방법을 기록합니다.
컨트롤러로 만든 메일을 호출하여 메일 템플릿에 데이터를 반영하여 발송합니다.
예를 들면
ContactController
의 컨트롤러가 있고 상담 기능과 같은 것으로 추진된다.컨디션
참고 자료
Mailtrap을 통해 Laavel에 대한 간단한 메일 보내기 테스트 이 실시 메일 발송 기능을 참고하여 테스트 메일을 발송하는 것을 목표로 한다.
@ubonsa 통속적이고 알기 쉬운 글 감사합니다
다음은 위 글Mailtrap의 계정 작성이 끝났고
.env
파일도 개작하는 것을 전제로 한다.1. ContactController
양식이 있으면 전송 버튼이 있고
store
이 동작을 수행합니다.보내는 매개 변수는 다음과 같습니다.
발신인
전자 우편 주소
컨텐트
name
body
ContactController
public function store(Request $request){
// フォームからのリクエストデータ全てを$contactに代入
$contact = $request->all();
}
2. 메일 클래스 만들기
$ php artisan make:mail ContactMail
위 명령을 실행한 후 app/Mail
에 ContactMail.php
파일을 생성합니다.app/Mail/ContactMail.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class ContactMail extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('view.name');
}
}
3. ContactMail.php 편집
템플릿에서 폼에서 받은 요청 데이터를 펼치고 싶어서 편집
ContactMail.php
합니다.app/Mail/ContactMail.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class ContactMail extends Mailable
{
use Queueable, SerializesModels;
/**
* 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
->from('[email protected]') // 送信元
->subject('テスト送信') // メールタイトル
->view('contact.mail') // どのテンプレートを呼び出すか
->with(['contact' => $this->contact]); // withオプションでセットしたデータをテンプレートへ受け渡す
}
}
4. 템플릿 만들기
->view('contact.mail')
와 상술한 정의를 내렸는데 이것은 resources/views
에서 온 경로이기 때문에 resources/views/contact/mail.blade.php
에 따라 파일을 제작했다.こんにちわ{{$contact->name}}さん
問い合わせ内容は以下で受け取りました
{{$contact->body}}
5. 연락처 편집
// 作成したメールクラスをuseする
use App\Mail\CotactMail;
use Illuminate\Support\Facades\Mail;
public function store(Request $request){
// フォームからのリクエストデータ全てを$contactに代入
$contact = $request->all();
Mail::to($contact->email)
->send(new ContactMail($contact)); // 引数にリクエストデータを渡す
}
자신의 환경에서Mail
fathod와 notfound에 오류가 발생하여 추가use Illuminate\Support\Facades\Mail;
했습니다.이상, 형식적으로 메일을 보내면 요청 내용을 반영한 메일 발송 기능이 있을까요?
Reference
이 문제에 관하여(Laravel5.6 메일 발송 기능의 제작 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sayama0402/items/dd10cdb2aa22c8a035b3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)