目次

ニュース

日記カテゴリ

書庫


表題どおりPHPでメールを送信するための覚書。

前提として
SMTPサーバ:開発マシン上に「MELON SMTP Sever」を起動して利用。
 作者さんのホームページはこちら。seclan のほえほえルーム
 な~んも考えずにインストールして起動すれば動作するのて非常に助かります。OpenSSLのインストールを忘れずに!
PHP実行環境:VS2005+VS.pnp
 結局VS.pnpはお買い上げw
文字コード:SJIS

メール送信にはmbstring拡張のmb_send_mailを利用。
VS.phpのPHP.iniではmbstring拡張が無効になってるので有効に!んでなぜかmbstring拡張の関数にはインテリセンスが聞かないorz

さらにPHPポケットリファレンスの情報鵜呑みでは文字化けorz
以下が参考になりました。
[PHP-users 22056]mb_send_mailで文字化け
[PHP-users 22071]Re: mb_send_mailで文字化け

2年前のMLでやり取りするような問題を抱える自分にちょっとしょんぼりw


そしてとりあえず動いたぞソースが以下。ご参考に。そのままではまぁ動かんでしょう。。。
 $toMail; // あて先
 $title;  // タイトル
 $body;  // 本文
 $header; // 追加ヘッダー
 $toMail = "hoge@mail.xx.xx";
 $title = "メールタイトル";
 $body = "本文\n改行もできるぜ!";
 $header =
  'From: info@mail.xx.xx' . "\r\n" .
  'Reply-To: info@mail.xx.xx' . "\r\n" .
  'X-Mailer: PHP/' . phpversion();
 mb_language("Japanese"); // 日本語モードにする
 mb_internal_encoding("SJIS"); // この設定がないと文字化けorz
 
 mb_send_mail($toMail, $title, $body, $header);

さあ後は何をメール本文として送信するか仕様を確認するだけ^^;
投稿日時 : 2006年10月21日 13:15
Feedback
  • # re: PHPでメール送信
    中博俊
    Posted @ 2006/10/22 12:36
    ちょっとまーーーーった。
    メールは日本のメールはISO-2022-JPと決まっている。
    ShiftJISとかEUCとかじゃだんめ!!
    UTF-8は時点。
  • # re: PHPでメール送信
    koka
    Posted @ 2006/10/22 12:55

    中さん
    ご指摘ありがとうございます。
    ISO-2022-JPにはどうやらmb_send_mail関数さんが変換して送信するみたいな模様です。厳密には調べておりませんが(汗

    送信後、メールを見て「まぁ文字化けないし、いいかぁ」みたいなノリの私めはどこか遠くへ行ったほうがいいでしょうかorz
  • # re: PHPでメール送信
    中博俊
    Posted @ 2006/10/22 13:01
    ヘッダをみるべし。
    またはファイルに落としてみるべし。
    できることなら/var/spool/mlをみるべし。
    もともとはそんな確認もできるように自分ところのメールさば立てた私は逝っていいです(^^
  • # re: PHPでメール送信
    koka
    Posted @ 2006/10/22 13:10


    コメント書いた後不安になったのでヘッダー覗いたところ
    「Content-Type: text/plain; charset=ISO-2022-JP」って記述と共にそれっぽいエンコードがかかってる模様です。

    あとMelonってローカルSMTPサーバなのでそいつを配送停止にしてファイルを除くと一応文字コードはISO-2022-JPっぽい(SJISでもUTF-8でもないって理由w)です。
    というかISO-2022-JPを開けるエディタってあるんですかねぇ。秀丸は無理っぽい?っすorz
  • # メールのエンコード確認
    ひよっこプログラミング
    Posted @ 2006/10/22 13:34
    メールのエンコード確認
  • # re: PHPでメール送信
    kojaru
    Posted @ 2006/12/01 12:09
    > なぜかmbstring拡張の関数にはインテリセンスが聞かないorz

    ソリューションエクスプローラの参照設定で、「Multi Byte String Function」を追加すれば、mbstring拡張の関数にもインテリセンスが効くようになりますよ。

    それより、Visual StudioでUTF-8で書かれたファイルが扱えないほうがorz。
  • # re: PHPでメール送信
    fffffffffffffffff
    Posted @ 2008/07/05 13:53
    fffffffffffff
  • # DsXjtduWqgFaejdabY
    https://www.blogger.com/profile/060647091882378654
    Posted @ 2021/07/03 4:24
    This is one awesome article post. Fantastic.
タイトル
名前
Url
コメント 

Blog 利用状況

絡んでるところ