概要
Google Appsで独自ドメインを管理している場合は、PHPを使ってGmailからメールを送信した方が迷惑メールに割り振られず到達率が高くなる(ような気がする)。
PHPでGmailを送信するには、PHPMailerという超簡単ライブラリを使う。以下その手順。
1.PHPMailerをダウンロードする
下記のアドレスからPHPMailerライブラリをダウンロードする。
https://github.com/Synchro/PHPMailer
zipファイルを展開したら、PHPプログラムと同じフォルダ内に置く。
2.Gmailを送信するPHPプログラム
以下のソースコードを書く。
mb_language("japanese"); mb_internal_encoding("UTF-8"); require 'PHPMailer/PHPMailerAutoload.php'; $mailer = new PHPMailer(); $mailer->IsSMTP(); $mailer->Encoding = "7bit"; $mailer->CharSet = '"iso-2022-jp"'; $mailer->Host = 'smtp.gmail.com'; $mailer->Port = 587; $mailer->SMTPAuth = TRUE; $mailer->SMTPSecure = "tls"; $mailer->Username = 'info@hoge2.net'; // Gmailログインアドレス $mailer->Password = 'hogehoge'; // Gmailログインパスワード $mailer->From = 'info@hoge2.net'; // Fromアドレス $mailer->FromName = mb_encode_mimeheader(mb_convert_encoding("山田太郎","JIS","UTF-8")); $mailer->Subject = mb_encode_mimeheader(mb_convert_encoding("メールのタイトル","JIS","UTF-8")); $mailer->Body = mb_convert_encoding("メールの本文です","JIS","UTF-8"); $mailer->AddAddress('info@loginmylife.co.jp'); // Toアドレス if($mailer->Send()){ echo "送信しました"; } else{ echo "エラー: " . $mailer->ErrorInfo; }
ポイントはsslではなくtlsを使う点。あと普通に使うとUTF-8の文字コードでメールが送信されてしまうので、文字コードに「iso-2022-jp」を指定しておく。
あとphp.iniまたはプログラム内で、mb_languageにjapaneseを指定しておかないと文字化けするので注意。
3.送信できない場合は
3-1.PHPMailerAutoload.phpの読み込みパスを確認する
3-2.php-mbstring(もしくはphp_mbstring.dll)がロードされているかを確認する
3-3.Gmailのログインアドレスとパスワードが正しいかを確認する
4.文字化けする場合は
4-1.phpの文字コードがUTF-8であるか確認する
4-2.mb_languageにjapaneseが指定されているか確認する
4-3.文字セットにiso-2022-jp(JIS)が指定されているか確認する
以上ですー