PHPコーディング

【mail】関数で添付なしプレーンテキスト形式メールを送信

2009年08月22日
まずは一番簡単な、添付ファイルのないプレーンテキスト形式のメールを、【mail】関数で送ってみます。


【mail】関数の仕様は
$result = mail($to, $subject, $body, $headers, $parameters);

【$to】は宛先メールアドレス、
【$subject】は件名、
【$body】はメール本文、
【$headers】はヘッダ、
【$parameters】は拡張パラメータです。



添付ファイルのない、プレーンテキスト形式のメールを送るには、MIME形式にする必要はないのですが、送られてくるメールを調べると、MIME形式で送られてくるので、私もMIME形式で送ることにします。

メールの文字コードはJISが一般的なので、メール本文はJISで送信します。


まずはどんなメールにも共通の宛先とサブジェクトです。

宛先メールアドレスへは、メールアドレスを引き渡してやればOKです。

サブジェクトにもし日本語が含まれる場合は、エンコードしてから引渡します。
mb_encode_mimeheader($subject, "EUC", "B");
(EUCへは$subjectの文字コードを引き渡す)


さて、問題のヘッダです。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
From: [宛先メールアドレス]\r\n
Reply-To: [返信メールアドレス]\r\n
Bcc: [メールアドレス]\r\n
MIME-version: 1.0\n
Content-Type: text/plain; charset=ISO-2022-JP\n
Content-Transfer-Encoding: 7bit
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ここで、from句に日本語宛先名を加える場合ですが、日本語名をサブジェクトと同様にエンコードします。
From: [エンコードした日本語宛先名]<[宛先メールアドレス]>\r\n

もちろんbccしない場合はbccの行はなし、ccする場合は同じように加えます。


メール本文は、JISにエンコードしてから引き渡します。
mb_convert_encoding([メール本文], "JIS", "ASCII,JIS,UTF-8,EUC-JP,SJIS");
本文の最後に【\n】を付加して引き渡します。


拡張パラメータには、リターンパスを設定することにしました。
-fリターンパスメールアドレス


※ []には送信するメールの内容を設定します。
コメントの書き込み
コメント
2018年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
先月
来月
カテゴリ
検索
関連サイト
プロフィール
【ネットネーム】
みゅー

キャラクター by ツカエルサイト


【趣味】
・プログラミング
・写真
・楽器演奏
・手芸
・日曜大工
・家の中の不便を便利に
・考える
・自然科学
・猫と戯れる
・ジグソーパズル

【仕事】
・派遣社員でSE・PGやっていました。次の良い仕事がみつからないので、ビジネスへ注力しようと思っています。
・経験言語:VB6、VB.NET、PHP、Perl、JAVA、Oracle、SQLServer、PostgreSQL



【名前】
アン(足)

2014年4月22日生まれ 女の子
あだ名は くノ一
普段は普通にしゃべりますが、興奮すると『ニャ』を連発します

【趣味】
・狩
・ご飯を食べる
・ママのお手伝い

【仕事】
ママのビジネスの看板招き猫
ママの代わりにPC入力
仕事中のママの右腕を温める
ママに心配をかける
いろんな事をしでかしてママを退屈させない

RSSフィード
Tweet