CakephpからGmailで日本語メール送信

CakePHPからGmailで日本語メールを送信するやり方です。

:: PHP Mailer ::
http://phpmailer.codeworxtech.com/

PHPで日本語メールを送る – 応用編 (添付ファイル、HTMLメール) – EC studio 技術ブログ
http://techblog.ecstudio.jp/tech-tips/mail-japanese-advance.html

のPHPMailerとJPHPMailerを使います。 メール送信用のアカウントはそう頻繁に送信毎に変えるものでも無いので、ラップするクラスにまとめた方が楽です。

まあ別にGMailに限ったものじゃなくてSMTP全般に使えますが、自分が使うのがGmailなので こんな名前にしてます。 やってることは設定読み込んで自分の環境に合わせてるだけなのであしからず。

/vendors/phpmailer/jphpgmailer.php:

<?php
vendor('phpmailer/jphpmailer');
class JPHPGMailer extends JPHPMailer{
function __construct($account = 'gmailaccount', $encoding = 'UTF-8', $language = 'ja')
{
$this->set('in_enc', $encoding);
$this->SetLanguage($language);
$this->IsSMTP();
$this->set('SMTPAuth', true);
//Gmailの設定読み込んでセット
Configure::load($account);
$this->set('Host', Configure::read('Gmail.host'));
$this->set('Port', Configure::read('Gmail.port'));
$this->set('Username', Configure::read('Gmail.username'));
$this->set('Password', Configure::read('Gmail.password'));
}
}

app/config/gmailaccount.php

<?php
$config['Gmail']['username'] = 'example@gmail.com';
$config['Gmail']['password'] = 'password';
$config['Gmail']['host'] = 'ssl://smtp.gmail.com';
$config['Gmail']['port'] = 465;

私の場合、/vendors/phpmailer/以下にclass.phpmailer.php, class.smtp.php,
jphpmailer.phpを置いてます。
インスタンス生成がnew JPHPGMailer() になるだけで、あとの使い方はJPHPMailerと同じです。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中