[PHP-users 6765] Re: pdfファイルをメール添付する方法(サマリ)
S.Okazaki
php-users@php.gr.jp
Tue, 09 Apr 2002 14:27:35 +0900
加藤様
こんにちは、岡崎です。
> 直接の回答はできませんが、元のメールにはかかれていない
> 1.動作環境
> いつもお世話になっているのだったら、目にたこができる
> くらい頻繁に出てくるフレーズのはずなんだけど、
> なぜ書けない?
> fopenでバイナリファイルを開く場合、UnixとWindowsでは
> 書き方が違います。動作環境がわからないと、ここで
> ミスしているかどうか、読み手には判断できない。
その通りでした。環境は、TurboLinux7 PHP4.1.2です。
また、過去ログを検索中に
http://ns1.php.gr.jp/php-jp/archives/msg11742.html
を見つけ(またまた、松嶋様提供です(^^;)
【1】-----------------------------------
$fp=fopen("$fileopen","r");
while(!feof($fp)) {
$attach .=fgets($fp,4096);
}
fclose($fp);
----------------------------------------
これを
【2】-----------------------------------
$fp=fopen("$fileopen","r");
$attach=fread($fp,filesize($fileopen));
fclose($fp);
-----------------------------------------
のように、変えると、上手くいきました。
赤マンモスでfopen("$str","b")に付いての記述をみ、
Linux環境でも、使える同様の関数を探しておりました。
(中略)
> 3.送られてきたメールではどうなる?
> 添付ファイルとしては認識されるけどPDFファイルとして
> 認識されないのか、添付ファイルとしてすら認識されないのかで、
> 原因はかわってくるけど、こういう具体的な現象が書いてないし。
【1】の時は、当たり前ですが、テキスト形式(これをテキストと呼ぶのか
どうか分かりませんが、バイナリデータではありません)
のファイルになり、テキストエディタで開くと訳の分からない文字列が
並んでいました。
ブラウザで生成された同じ内容のpdfファイルをテキストエディタで開いたと
きと、ほとんど同じような?内容でした。
故に、生成したpdfファイルのバイナリデータを読み込みテキストデータとして、
$attachに書き込んだのだと判断しました。
(中略)
> 4.いろいろやったとは具体的には?
> sendAttachMailを使わない方法も試したということ?
> それともsendAttachMailの中をいろいろ書き換えて試したの?
本来は mb_send_mail($from,$to,$header)で、
$header .="Content-Type: Multipart/Mixed;
boundary=-*-*-*-*-*-*-*-*-Boundary_b3cb27754dabb0";
$header .="Content-Transfer-Encoding: Base64";
・・・・
等とやりたかったのですが、どうしても上手くいかず、松嶋様提供
の関数を使わせていただきました。
/_/_/_/_/_/_/_/_/_/_/_/_/_/
Japan Human Base
Sotaro Okazaki
Email : okazaki@jp-hb.com
/_/_/_/_/_/_/_/_/_/_/_/_/_/