CakePHPからgmail経由でメールを送信する

CakePHPからgmail経由でメール送信する CakePHP2

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);

結構簡単に利用することができるので、ぜひ使ってみてください。では。