[PHP-users 30220] Re: mail送信で教えてください

KKuji_Y2a kkuji @ mwb.biglobe.ne.jp
2006年 9月 2日 (土) 14:36:38 JST


KK@IBです。

再度のご指導に関するご報告です。

>      自分でソケットの処理を書きたくないと言うだけなら

こういうせりふを誰が言うのか良く分かりませんが、
pearにはpearの手間があるかと思います。
installされていないとか...

HTMLメールは、
http://www2.stack.ru/~julia/PHP4/function.mail.html
を参考にして、動作確認しました。
これは、pearは必要ない形です。

添付ファイルのあるメールは、
http://www.yumemaboroshi.net/detail3773/
を参考にしました。
これも、pearは必要ない形です。

PEAR::Net_SMTP は、pearのsampleを使いました。
http://www.indelible.org/pear/Net_SMTP/guide.php#examples
あて先複数の単純なメール送信ですが、動作確認。(当然!?)

これにHTML送信とか、添付ファイルとか、機能を付けると
また、多少あるでしょうが、boundaryを使うのが面倒でなければ、
要領は同じでしょう。

(使わなければ? 多分、Mail_Mime を使うということでしょう。 そういう点では、Mail_Mimeは便利かもしれませんね。

でも、sendmail をきちんと使えるようになったほうが、よいのかも。
http://www.sendmail.org/jp/ 個人的には、ちょっと億劫な気分もありますが。

なお、ご指摘の、http://wiki.poyo.jp/read/PHP/tips/mail/function_mail にある、sendmail の使い方は、大変参考になりました。

「mail()がそもそも実行できるか? †
PHP CGI SAPIやPHP CLI SAPIで下記のようにコマンドを実行すれば,mail()が内部で作成しているメッセージテキストを標準出力に出力することができます.」
の部分は、難しかったですが。これは、SSHやtelnetで、ログインし、コマンドプロンプト状態で、

echo '<?php mail( "foo @ example.com", "test", "body", "From: 
bar @ example.com"); ?>' |  php -d sendmail_path="cat -"
と打てばよいということですね。)


PEAR::Mail と Mail_Mimeも使って、やってみました。
これは、山田祥寛「PEAR入門」(翔泳社)についている
ソースを流用し、テストしました。

smtpサーバーは、最近は、認証が要るものが増えているので、localhostを使いました。 


また、mimeは、テストしたサーバーにはインストールされていなくて、また、インストール権限も無かったので、
パッケージをダウンロードし、プログラムのある場所にftpで送り込み、
インクルードPathを調整して、使いました。
(ここが、専有でないレンタルサーバー上で仕事をするときの、pear利用の不便なところです。)

とりあえず、動作、OKでした。一度環境ができてしまえば
あとはいろいろ使えます。

なお、日本語のタイトルの文字化けに結構悩んでいましたが、
mb_internal_encoding("EUC-JP");
$subject2 = mb_encode_mimeheader($subject, "ISO-2022-JP", "B");
で、今はうまく行っています。

以上、ご報告まで。



>      上鍵です.こんにちは.
>      自分でソケットの処理を書きたくないと言うだけなら PEAR::Mail
>    や PEAR::Net_SMTP で簡単に上物だけの実装でメール送信の処理が実
>    装できますよ.



PHP-users メーリングリストの案内