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)); // 引数にリクエストデータを渡す
}
자신의 환경에서Mailfathod와 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.)