メールの本文を添付ファイルで送信するスクリプト
最終更新日: 2010年3月 7日 (日曜日) 05:42:44 PM
故あって、「メールの本文を添付ファイルにする事は出来ないか」と思い立ち、参考になりそうなサイトを探していたら、携帯電話 WEBページ構築に関する PHP というサイトの「ソース公開ソフト」のカテゴリに、プログラムから、メール送信(要sendmail)というページが見つかった。早速、実行して見るも、PHP5 では i18n_mime_header_encode や i18n_convert は「古臭えーから使うな」とエラーを返され、popen や fputs は「危ねーから使うな」と止められた。なれば自作するしかないかと、テキトーに作ってみたら、案外短く纏まって自己満足。利用価値は低いと思うが、参考の際は自己責任のお約束。(作成日: 2009年9月 5日 (土曜日) 03:20:01 PM)
以下のスクリプトでは、charset を UTF-8 にしている為、mb_send_mail ではなく mail 関数を使用した。勿論、添付された .txt ファイルのエンコーディングも UTF-8 となる。因みに、セーフモードが有効な場合、mail 関数の additional_parameters を指定することは出来ない。
- <?php
- $from = '×××@×××.com';
- $to = '○○○@○○○.net';
- $subject = '件名';
- $body = 'ここ書いた内容が添付ファイルに記載されます。';
- $filename = date('Y-m-d') . '.txt';
- $headers = "MIME-Version: 1.0\n";
- $headers .= "Content-Type: text/plain; charset=\"UTF-8\"\n";
- $headers .= "From: $from\n";
- $headers .= "Content-Disposition: attachment; filename=\"$filename\"\n";
- mail($to, $subject, $body, $headers);
- $htmlout =
- '<html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>メールの本文を添付ファイルで送信するスクリプト</title>
- </head>
- <body>
- 送信完了
- </body>
- </html>';
- echo $htmlout;
