본문으로 바로가기

[PHP : Laravel] Laravel로 메일 보내기

category Helloworld!/Laravel 2013. 7. 11. 17:28

오랫만에 꺼내보는 Laravel

요즘 주임님이랑 laravelcasts에서 동강들으며 공부중이다.

물론 나는 멍- 하게 두세번 돌려보고 다음날 주임님의 첨삭으로 희미하게 이해하는 정도이지만...

 

여튼

Laravel로 메일 보내기 이지만 정말 메일만 보낸다. 아직 그 이상은 시도하지 않았다.

조금씩 차츰차츰 영역을 넓혀나가야지

 

동강은 

http://laracasts.com/video/laravel-4-mail

한글로 된 메뉴얼은

http://www.laravel-korea.org/docs/mail

 

우선 Laravel 서버 실행. 서버 실행 방법은 다른 글에 포스팅했으니 참고하자.

php artisan serve

 

메일을 보내면 우선

 

1. laravel\app\config\mail.php를 수정해야한다

안에는 메일을 전송하기 위한 정보를 담고 있는 배열을 return하는 소스코드가 있는데 

host, port, username, password등을 설정하는 곳이다.

본인이 쓰고 싶은 설정에 맞게 입력을 하면되고, 참고로 다음은 google 메일을 사용할 때 설정하는 방법이다.

'driver' => 'smtp', 'host' => 'smtp.gmail.com', 'port' => 465, 'encryption' => 'ssl', 'username' => 'your-email@gmail.com', 'password' => 'your-password',

2. laravel\app\views\routes.php 수정

$user에는 받는 사람의 정보를 선언

$data에는 메일에서 보여질 내용 선언 하였다.

 

send 메소드에 전달되는 첫번째 인수는 이메일의 바디로 사용될 뷰 파일의 이름입니다. 두번째 인수는 뷰에 전달 될  $data 이며, 세번째는 이메일 메시지에 다양한 옵션을 지정하게 해주는 클로저입니다.

 

라고하고... Mail::send 메소드를 사용해서 이제 이메일을 보내도록 해보자.

 

Route::get('/', function() {      $user = array(         'email'=>'test@gmail.com',         'name'=>'Kim, Se-Hee'     );      $data = array(         'detail'=>'Your awesome detail here',         'name'  => $user['name']     );       Mail::send('emails.welcome', $data, function($message) use ($user)     {         $message->from('seheekim@netpas.net', 'Kim, Se-Hee');         $message->to($user['email'], $user['name'])->subject('Welcome!');     });      return 'Done!';  });

from에 들어가는 내용은 보내는 사람의 정보

to에 들어가는 내용은 받는 사람의 정보, subject는 메일의 제목을 지정해주면 된다.

 

3. views\emails\welcome.blade.php 생성 후 입력

메일 내용을 입력하는 곳이다. 왜 welcome.blade.php인지는 모르겠지만 다들 이렇게 쓰더이다. 공부가 더 필요하다ㅜㅜ

Your sign up details are below: {{ $detail }},  {{ $name}} 

 

4. 마지막으로 http://localhost:8000/ 실행

하면 Done!이라고 메세지가 나오며 메일함을 확인하면 메일이 와있는것을 볼 수 있을 것이다.

 

 

 

참고 사이트

http://forums.laravel.io/viewtopic.php?id=8503

http://maxoffsky.com/code-blog/sending-e-mail-with-laravel-4-using-mail/