[Tep-j-general] Re: contact_us.phpページに添付ファイルを追加

Back to archive index

hamada bungu****@leo*****
2006年 1月 13日 (金) 08:29:05 JST


こんにちわ。

On Thu, 12 Jan 2006 01:26:14 +0900
UHH51****@nifty***** wrote:

> メーリングリスト会員の方で、添付ファイルを追加されています方が居ましたらお教え願います。

当方はそんなコトしてません→貴君が訊ねられてる対象ではないんですが、と事
前に前置きして。

入力部に

> <input type="file" name="upfile">

みたいなフォームを設置しとけば

> $upfile = $_FILES['upfile']['tmp_name'];
> $upfile_name = $_FILES['upfile']['name'];

で添付ファイルとファイル名を取得出来ますよね?

file_get_contents()
http://jp.php.net/manual/ja/function.file-get-contents.php

が使える環境なら、ファイルをメールで送れるようにするには

> $data = file_get_contents($upfile);
> 
> $encode = chunk_split(base64_encode($data)); 

とやるのが一番手っ取り早いと思います。

で、本文をJISに変換

> $message = mb_convert_encoding($HTTP_POST_VARS['enquiry'], "JIS");

して、添付ファイルの有無に応じて適当にメッセージを組み、mail()関数に投げ
てやれば宜しいのではないかと。

「適当」のサンプルはmail()関数のマニュアル等にあると思います。パート区切
りとか作んないといけないんで、ちょっとだけ面倒くさいかも。

http://jp.php.net/manual/ja/ref.mail.php

確か、MIME的には区切りが「同じ文字列」であればわざわざmd5()とかして生成
しなくても良かった筈ですが…(←あまり自信が無いらしい:^^;)

Subjectとか日本語が混じるので、ヘッダ周りをmb_encode_mimeheader()しとく
のを忘れないようにしましょう。

PEAR使う手もあるみたいです。どちらでも、使い易い方で。

http://peardoc.xole.net/package.mail.mail-mime.example.html

まぁ、ぶっちゃけcontact_us.phpは殆どスタンドアロンなファイル→わざわざ手
間ひま掛けてこれを改造しなくても、適当な既成メールフォームが、ほかに幾ら
でもありそうな気がしますけど(^_^;)

# なんか、以前にも同じような事を言った記憶があるような(^^;;

はまだ




Tep-j-general メーリングリストの案内
Back to archive index