Laravel mailTrap으로 메일 송신 테스트 비망록

이 기사에서 달성 할 수있는 일



Laravel에서 mailtrap을 이용한 메일 전송 테스트를 구현할 수 있게 된다.
mailtrap과는 메일을 송신해도 실제의 목적지에는 날리지 않고, 웹 사이트로부터 확인할 수 있다고 하는 서비스.

개발 환경



cloud9
php 7.0 ※버전 확인 커맨드

php -v

Laravel 5.3.31 ※버전 확인 명령

php artisan --version

mailTrap으로 사용자 등록



이하의 기사를 참고로 등록을 실시한다.
메일이 얽힌 개발에는 mailtrap을 추천

Laravel 측 설정


.env 파일을 열고 다음 초기값을 변경하십시오.

변경 전:
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

변경 후:
MAIL_DRIVER=smtp
MAIL_HOST= smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=[MailtrapのUsername]
MAIL_PASSWORD=[MailtrapのPassword]
MAIL_ENCRYPTION=null

위의 MAIL_USERNAMEMAIL_PASSWORD= 항목은 mailTrap에서 정보를 참조하십시오.


메일 보내기 스크립트



이하 커멘드로 메우는 송신을 위해서 필요한 클래스를 생성.
php artisan make:mail SendMail

cloud9의 다음 디렉토리 아래에 파일이 생성되었는지 확인합니다.
app/Mail/SendMail.php

다음과 같은 파일이 생성됩니다.

SendMail.php
<?php

namespace App\Mail;

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

class SendMail 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');
    }
}

build() 메소드를 변경한다.
public function build()
{
    return $this
        ->from('[email protected]')
        ->subject('テスト送信完了')
        ->view('emails.test');
}

※ 변경을 더한 view('emails.test'); 로 메일 템플릿을 작성하도록 기술하고 있지만, 템플릿 작성 방법에 관해서는 할애하겠습니다.

생성된 파일을 인스턴스화하고 메일을 보내려면
우선 routing은 다음과 같이 설정했다.

web.php
// つまり "TestMailController" の sendメソッド を利用してメールを送信する
Route::get('/mail','TestMailController@send');

cloud9의 다음 디렉토리 아래에,
app/Http/Controller

TestMailController 파일을 만듭니다.

TestMailController.php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use App\Mail\TestMail;

class TestMailController extends Controller
{
    public function send(){
        return Mail::to('[email protected]')->send(new SendMail());
    }

}

send 메소드를 발화시키면 mailTrap의 대시 보드상에서
메일을 수신하고 있는지 확인할 수 있다.

이상

참고 자료 : Mailtrap에서 Laravel 간편한 이메일 전송 테스트

좋은 웹페이지 즐겨찾기