Laravel4でメール送信

今日は、Laravel4でメールを送信する方法を調べてみたいと思います。

1. Laravel4はデフォルトで、SwiftMailerライブラリーを使用しています。メールの設定ファイルは、app/config/mail.phpです。

2. 初期設定のmail.phpを見てみましょう。コメント行は削除しています。

<?php
return array(
'host' => 'smtp.postmarkapp.com',
'port' => 2525,
'from' => array('address' => null, 'name' => null),
'encryption' => 'tls',
'username' => null,
'password' => null,
);

Gmailを使用して設定

3. それでは、gmailを使用してメールを送信できるように設定してみましょう。

<?php
return array(
'host' => 'smtp.gmail.com',
'port' => 465,
'from' => array('address' => 'nakada@winroad.info', 'name' => '中田秀雅'),
'encryption' => 'ssl',
'username' => 'nakada@gmail.com', //取得しているGmailアカウント
'password' => 'mygmailpassword', //Gmailのパスワード
);

基本的な使い方

4. メールを送信するには、Mail::sendメソッドが使用されます。sendメソッドの第1引数は、emailの本文に使用されるビューの名前を指定します。第2引数は、ビューに引き渡すデータを配列で指定します。第3引数は無名関数で、さまざまなオプションを指定します。

5. それでは、views/emailsフォルダに下記のようにファイルを作成します。

laravel4/app/views/emails/test.php

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>メール送信</title>
</head>
<body>
<p>ようこそ<?php echo $name?>さん</p>
<p>このメールはLaravel4で送信しています。</p>
</body>
</html>

6. ルーターに下記のようにメール送信用のコードを記述します。

laravel4/app/routes.php

Route::get('email',function(){
 $data['name']='名無しの権兵衛';
 Mail::send('emails.test',$data,function($m){
 $m->to('nakada@winroad.com','Nakada')->subject('Welcome!');
 });
 return 'メールを送信しました。';
});

7. ブラウザからアクセスしてみます。

http://localhost/laravel4/public/email

laravel4_038

8. 無事メールが届きました。いろいろな部分でLaravel3よりも難しくなっているLaravel4ですが、メールの送信は簡単ですね。

laravel4_040

本日は以上です。

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

トラックバック&コメント

この投稿のトラックバックURL:

コメントをどうぞ

このページの先頭へ