2016年3月31日木曜日

【備忘録】PHPMailer ライブラリを使って GmailのSMTPからメール送信(PHP編)

PHPMailer 6.0よりやり方が変わっています。
PHPMailer 6.0以降をお使いの場合には

を参照してみてください。


ちょっとやってみたことの備忘録です。
この手のやり方はネットでいろいろ情報がありますが、自分で検証したことは自分のブログで備忘録にしておくと後から便利なので...

参考情報



が大変参考になりました。というかほとんどこれを見ました。

検証環境

  • MacOS 10.10.5
  • PHP 5.6.10 (cli) (built: Jul  6 2015 14:28:54) -- MAMPのphp
  • PHP 5.5.31 (cli) (built: Jan 11 2016 23:27:33)  -- MacOSX 10.10.5標準搭載
ということでMacOSXで PHP環境設定を何もいじっていない状態でも動作確認しました。

以下、ターミナルアプリ(アプリケーション > ユーティリティ)を起動してからのお話です。


1. 作業場所の確保と PHPMailer ライブラリ取得


mkdir sendmail
cd sendmail
git clone https://github.com/Synchro/PHPMailer

※gitコマンドは、 GitサイトからMac用インストーラーをダウンロードして、インストールすると使えます。

これで

sendmail
 ┗ PHPMailer

というフォルダができるはず

2. sendmail.php を作成してコーディング


以下を適当に sendmail-test.php とでも保存して、

php sendmail-test.php

と実行して、「送信されました」とでれば成功で、GmailのSMTP経由でテストメールが、宛先に届くでしょう。

<?php

mb_language("japanese");
mb_internal_encoding("UTF-8");
require 'PHPMailer/PHPMailerAutoload.php';

$mailer = new PHPMailer();
$mailer->IsSMTP();
$mailer->Encoding = "7bit";
$mailer->CharSet = '"UTF-8"';

$mailer->Host = 'smtp.gmail.com';
$mailer->Port = 587;
$mailer->SMTPAuth = TRUE;
$mailer->SMTPSecure = "tls";
$mailer->Username = 'Gmailアドレス'; 
$mailer->Password = '※1';
 // ※1は、2段階認証有効なら「アプリ固有のパスワード」を生成してそれをいれる
 // 無効ならGmailのパスワード(それでもダメなら安全性の低いアプリからのアクセスを許可しておく)
$mailer->From     = 'Gmailアドレス'; // 差出人
$mailer->FromName = mb_encode_mimeheader("表示名","ISO-2022-JP","UTF-8"); // "表示名" <メールアドレス>
$mailer->Subject  = mb_encode_mimeheader("件名を入れる","ISO-2022-JP", "UTF-8"); 
$mailer->Body     = mb_convert_encoding("本文を入れる","UTF-8","auto");
$mailer->AddAddress('送信先(宛先)のメールアドレス'); 

if($mailer->Send()):
   echo "送信しました" . "\n";
else:
   echo "エラー: " . $mailer->ErrorInfo . "\n";
endif;

?>

2016年3月31日 @kimipooh


0 件のコメント:

コメントを投稿