CakePHPからメールを送信するとき、postfix等のMTAを利用してもいいのですが、いろいろと設定が面倒です。gmail経由でメールを送信することで、設定の手間も省けると思います。
ここでは、CakePHPからgmail経由でメールを送信する手順を紹介します。対象はCakePHP2系となります。
■gmailへの接続設定を追加
CakePHPの設定ファイルの一つ、app/Config/email.phpを編集します。ここでgmailへの接続設定を追加します。
存在しない場合はapp/Config/email.php.defaultというファイルがあるので、email.phpにファイル名を変更する等の対応をお願いします。そこで、以下の行を追加します。EmailConfig のメンバ変数として追加してください。
// Gmailの設定を追加
public $gmail = array(
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'username' => 'メールアドレス@gmail.com', // ユーザ名
'password' => 'XXXXXXXXX', // パスワード
'transport' => 'Smtp',
);
ユーザ名とパスワードは適宜変更してください。
■ソースコード内に送信ロジックを記載する
まずは、対象のコントローラー等に以下を記述して、CakeEmailを読み込みます。
App::uses('CakeEmail', 'Network/Email');
そして、メールを送信したいところに以下のコードを記述します。new CakeEmailの引数に、先ほどemail.phpで設定した変数名を文字列として設定しています。
$title = 'タイトルです';
$string = 'メールの本文です。';
$email = new CakeEmail('gmail');
$email->from([MAIL_FROM => 'Fromに表示される名前']);
$email->to('test@supersonico.info');
$email->subject($title);
$email->send($string);
結構簡単に利用することができるので、ぜひ使ってみてください。では。