もう8月も終わりが近いというのに 気づいてみれば ナント今月初めての投稿になりました。
実は脱Microsoft(??)の一歩として ASP.Netで現役時代に作ったサイトの PHP化に夢中になっていました。本来であれば いきなりLinux + Apache + MySQL + PHP であれば大手を振って 脱Microsoftの第一歩といえるのですが Win2012 + IIS + SqlServer + PHP で 半歩ほど踏み出そうかと
そこで 一番手間取ったSMTP経由での日本語メールの送信について 備忘録
SMTP経由での日本語メールの送信は以下の手順で実装しました。
- PEARのインストール
- Mailパッケージ Mail MIME パッケージのインストール
- QdmailおよびQdsmtpのインストール
- PEARのインストール
SMTP経由で Mailを送信するには PEARのインストールが必要です。
いろいろなサイトを見ると(例えば ここ)PHPのインストールフォルダの go-pear.bat をコマンドプロンプトから実行してインストール と書いてありますが、自分がインストールした PHP5.4の場合 そのようなバッチファイルはどこを探しても 見当たりません。(お手上げ??)
インストール方法を調べると ここに 載っていました。・ブラウザで http://pear.php.net/go-pear.phar にアクセスし go-pear.phar をダウンロードします。
・go-pear.pharを PHPのインストールフォルダにコピーします。
・コマンドプロンプト(管理者権限付き)を開き PHPのインストールフォルダに移動します。
・コマンド php go-pear.phar を実行します。
途中で確認応答を求められますが 全てDefaultで進めます。
・インストールフォルダに作られた PEAR_ENV.reg をダブルクリックし レジストリに PHPの環境変数として PEARの設定を追加します。
・コマンドプロンプトで PHPのインストールフォルダに移動し setコマンドで 環境変数にPHP_PEARに関する項目が追加されていることを確認します。
- Mailパッケージ および Mail MIME パッケージのインストール
・コマンドプロンプトを開き PHPのインストールフォルダに移動します。
・pear install -a Mail と入力し Mailパッケージのインストール をインストールします。
・pear install -a Mail_MIME と入力し Mail MIMEパッケージのインストール をインストールします。この状態で ここを参考に日本語のメールを作成し、自分宛にメールを送信したところ 確かに メール本文・件名・宛名等々は日本語になったが なぜかThunderbirdのポップアップに表示される 本文の要約が文字化け!! きょっと気味が悪い そこでQDmailをインストールすることに
- QDmailおよびQdsmtpのインストール
ここから qdmail.1.2.6b.zip また ここから qdsmtp.0.2.0a.zip をダウンロードし、それぞれ解凍後 qdmail.php および qdsmtp.phpをプログラム のフォルダに配置します。
ところが、ここを参考にサンプルプログラムを作成してテストするとqdmail.phpでエラーが多発!!
やはり同じような現象に出くわした先人がいて ここにその対処方法が・・・
・661,3677,3771,3820行目で Deprecated: Assigning the return value of new by reference is deprecated
&= を =に変更
・3734行目で Strict Standards: Declaration of QdmailComponent::smtpObject() should be compatible with that of QdmailBase::smtpObject()
3761行目の smtpObject() をsmtpObject( $null = false ) に変更これで正常にメールが送信されるようになりました。
参考にしたサイト
http://www.ah-2.com/2012/08/09/pear_install_win_no_gopear.html
http://www.phpbook.jp/pear/pear_mail/index1.html
http://www.phpbook.jp/pear/pear_mail/index5.html
http://qiita.com/tsunet111/items/0ba0e8fc61882c3905c0
http://blog.livedoor.jp/orgf/archives/27922540.html
http://www.phpbook.jp/install/phpini/index5.html
http://hal456.net/qdmail/