メールの本文を添付ファイルで送信するスクリプト

最終更新日: 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 を指定することは出来ない。

  1. <?php
  2. $from = '×××@×××.com';
  3. $to = '○○○@○○○.net';
  4. $subject = '件名';
  5. $body = 'ここ書いた内容が添付ファイルに記載されます。';
  6. $filename = date('Y-m-d') . '.txt';
  7.  
  8. $headers = "MIME-Version: 1.0\n";
  9. $headers .= "Content-Type: text/plain; charset=\"UTF-8\"\n";
  10. $headers .= "From: $from\n";
  11. $headers .= "Content-Disposition: attachment; filename=\"$filename\"\n";
  12.  
  13. mail($to, $subject, $body, $headers);
  14.  
  15. $htmlout =
  16. '<html>
  17. <head>
  18. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  19. <title>メールの本文を添付ファイルで送信するスクリプト</title>
  20. </head>
  21. <body>
  22. 送信完了
  23. </body>
  24. </html>';
  25.  
  26. echo $htmlout;

Google Readerへ追加