0

php mail コマンドからメールを送信しようとしています。これまでに試したことはできましたが、添付ファイルで機能させることができないようです。私はウェブを見回しましたが、見つけた最高のコードが私をこれに導きました:

$fileatt_name = 'JuneFlyer.pdf';
$fileatt_type = 'application/pdf';
$fileatt = 'JuneFlyer.pdf';
$file = fopen($fileatt,'rb');
$data = fread($file,filesize($fileatt));
$data = chunk_split(base64_encode($data));
$MAEmail = "myemail@sbcglobal.net";

mail("$email_address", "$subject", "$message",
"From: ".$MAEmail."\n".
"MIME-Version: 1.0\n".
"Content-type: text/html; charset=iso-8859-1".
"--{$mime_boundary}\n" .
"Content-Type: {$fileatt_type};\n" .
" name=\"{$fileatt_name}\"\n" .
"Content-Disposition: attachment;\n" .
" filename=\"{$fileatt_name}\"\n" .
"Content-Transfer-Encoding: base64\n\n" .$data. "\n\n" ); 

私がこれを行うとき、2つの問題があります。まず、メールの内容が消えます。

第二に、添付ファイルにエラーがあります。「Adobe Reader は June_flyer.pdf を開くことができませんでした。これは、サポートされているファイル タイプではないか、ファイルが破損しているためです (たとえば、電子メールの添付ファイルとして送信され、正しくデコードされなかったなど)。」

これに対処する方法のアイデアはありますか?

ありがとう、

JB

4

3 に答える 3

4

メールと php を処理する最善の方法は、十分にテストされた信頼性の高いライブラリを使用することです。個人的にはSwiftMailerをお勧めします。

于 2010-05-12T03:06:17.313 に答える
1

問題はヘッダー内にある可能性があります。難しい方法を学びたい場合は、ヘッダーを使用してさまざまな MIME タイプを構成し、それらを実行する方法を理解してください。

または、簡単な方法は、PHPmailerまたはその他の電子メール ライブラリを使用することです。

于 2010-05-12T07:41:59.480 に答える