質問: cgi(perl)でweb上から作成したファイル(csvなど)をsendmailで添付 宜しくお願いします。 cgi(perl)を使い、web上でメンバー登録などをし、 個人データなどをcsvファイルにして、sendmailで 管理者へ送りたいのですが、 添付ファイルとして、こういったファイルを送る方法をお教え下さい。
回答: 別にマルチパートなメッセージを作れば良いだけです。 use constant attach_template => <<__template__; from: <%s> to: <%s> subject: %s mime-version: 1.0 content-type: multipart/mixed; boundary="------hogehoge" content-transfer-encoding: 7bit --------hogehoge content-type: text/plain; charset="iso-2022-jp" content-transfer-encoding: 7bit %s --------hogehoge content-type: application/octet-stream; name="%s" content-disposition: attachment; filename="%s" content-transfer-encoding: 7bit %s --------hogehoge-- __template__ といったテンプレートを用意しておいて sprintf attach_template, $from, $to, $subject, $message, $filename, $filename, $file_data; で得たデータをsendmailコマンドに渡せばデータを添付して送信できます。 # ホントはセパレータをhogehogeとか適当なのじゃなく、メッセージ中に現れないユニークなものを使う必要があったり、色々細かいところはありますけど。