- Laravel Mail 보내기

    - MailGun 서비스 사용



* MailGun 서비스 가입
https://www.mailgun.com/


* Guzzle HTTP 라이브러리 설치
composer require guzzlehttp/guzzle



* .env 파일 수정
     - config/mail.php 와 config/services.php 수정을 대체
MAIL_DRIVER=mailgun
MAILGUN_DOMAIN=도메인
MAILGUN_SECRET=mailgun 비밀키
   

//===========
* Mailable 클래스의 상속 클래스 생성 <== 옵션
php artisan make:mail 클래스이름


//================================
* 메일 폼 블레이드 생성
    - 보내는 메일의 내용 형식을 지정하는 html
mailform.blade.php
...
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="utf-8">
</head>
<body>
<h2>제목 </h2>
<div>
    Welcome  {!! $name !!}
</div>

</body>
</html>


//=======================
* 메일 콘트롤러 작성
    - 메일 보내기
app/Http/Controllers/MailCotroller.php
//
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use App\Http\Controllers\Controller;

class MailController extends Controller
{
    public function sendWelcome(Request $request)
    {
        $data = array(
            'name' => "홍길동",
        );

        Mail::send('mail.welcome', $data, function ($message) {
            $message->from('admin@example.com', 'admin');
            $message->to('customer@example.com')->subject('welcome to example.com');
        });
        return redirect('/');
    }



//=======================
* 메일 보내기 테스트

    - 라우팅 설정
route/web.php

Route::get('mail/welcome', 'MailController@sendWelcome');



    - 보내기
http://site/mail/welcome


//=====================

* 모의 테스트 사용법

- 실제로 보내기 않고 로그에만 남기는 방법

- MAIL_DRIVER를 log로 변경


.env 파일 수정

MAIL_DRIVER=log




Posted by 코덴스

댓글을 달아 주세요