• ベストアンサー

PHPからHTMLメール

LINUX7.0でPHP4を使っているんですが、プログラムからHTMLメールを送れません。何かいい方法はありませんでしょうか? mail()関数でも/usr/sbin/sendmailからでもいいのですが、ヘッダ部分がうまく付けることができていないようです。どなたか教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tujige
  • ベストアンサー率68% (13/19)
回答No.2

なるほど。Multipart だったんですね。 私はまた、mail 関数の使い方がわからないのかと、勘違いしました。 申し訳ありません。 で、回答ですが、私は IT Boost 様のスクリプトを使用させていただいております。 PHP -> メールの項にサンプルがあります。 php の mail でもできますが、車輪の再発明もどうかな?と思いましたので、使用させていただいております。 が、マルチバイト文字列関数が使用できることが前提となっているようですので、現時点のバージョンでは難しいかなと。もちろん、jstring などのモジュールをコンパイルされているのであれば、その限りではないかと思います。 また、php4.0.6 を使用していますが、特に不都合など無く、アップデートしてみてはいかがでしょうか。 # というより、あげたほうがいいと思います。 # 便利ですよ。:-)

参考URL:
http://www.itboost.co.jp/
m8b
質問者

お礼

ありがとうございます。 教えていただいたサイトも見てみましたが、かなり勉強になりました。 とりあえずバージョンアップしてみることにします。 どうもありがとうございました。

その他の回答 (1)

  • tujige
  • ベストアンサー率68% (13/19)
回答No.1

ヘッダ部分というのはどういったものでしょうか? Return-Path? それとも Content-type でしょうか? mail 関数でも、第三引数を指定すれば追加ヘッダを指定できるはずです。 また、php 4.0.6 以上で、適切にコンパイルされているのであれば、mb_send_mail という関数が使用できるはずです。 この関数であれば、エンコードまでしてくれると思います。

m8b
質問者

補足

i18nコンバートっていうのができなかったんで第三引数で "From: xxxx@xxxxxxxxx\nContent-Type: multipart/alternative; boundary=\"THIS_LINE_IS_BOUNDARY\" とContent-typeを指定した上で、本文部分では $body = <<<EOF --THIS_LINE_IS_BOUNDARY Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit $honbun(HTML本文) --THIS_LINE_IS_BOUNDARY Content-Type: text/html; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable $honbun EOF; と指定しました。かなり適当なつくりになっちゃいましたが、こんなんでいいんでしょうか。 本文中にはスタイルシートとテーブルとかが入ってるんですが、スタイルシートで指定したテーブルのスタイルが反映されませんでした。 なんかもっとスマートなやり方があると思うんですけど・・・。 php4.01なんでmb_send_mailってのも使えないみたいです。 php4.06に替えることを考えたほうがいいですかねぇ

関連するQ&A