phpでメール機能を実装しようとしましたが、1つの添付ファイルで正常に動作しますが、複数の添付ファイルを送信しようとしたときに問題が発生しました。私は電子メールを送信するためにphp mail()関数を使用していますが、私はPDFと画像ファイルを添付しようとしています。 PDFが添付されている場合、画像は添付されません。画像が添付されていれば、PDFは添付されません。私が間違っていると思ったことは何ですか?php:複数の添付ファイルで電子メール送信に失敗しました
$header .= 'From: test <[email protected]>' . "\r\n";
$header .= "MIME-Version: 1.0\r\n";
$file = '1.png'
$displayname = '1.png';
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$name = basename($file);
$filepdf = '1.pdf'
$displaynamepdf= '1.pdf';
$file_sizepdf = filesize($filepdf);
$handlepdf = fopen($filepdf, "r");
$contentpdf = fread($handlepdf, $file_sizepdf);
fclose($handlepdf);
$contentpdf = chunk_split(base64_encode($contentpdf));
$name = basename($file);
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/octet-stream; name=\"".$displayname."\"\r\n"; // use different content types here
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$displayname."\"\r\n\r\n";
$header .= $content."\r\n\r\n";
$header .= "Content-Type: application/octet-stream; name=\"".$displaynamepdf."\"\r\n"; // use different contentpdf types here
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$displaynamepdf."\"\r\n\r\n";
$header .= $contentpdf."\r\n\r\n";
$header .= "--".$uid."--";
if (mail($to, $subject, "", $header)) {
return 'sent';
} else {
return 'not sent';
}
My 2¢:[PHPMailer](http://phpmailer.worxware.com/)または[swiftmailer](http://swiftmailer.org/)を使用してください。 –
そうですね、可能であればライブラリを使用してください。賢明な人たちには多くの時間を要する多くの問題があります。私はPHPMailerが好きです。この問題は、ご使用のSMTPサーバーの種類に左右されます。ライブラリがこれらの問題を処理します。 –
Mihaiはすでにこの点に触れていますが、PHPの 'mail()'は実際のプロジェクトでは通常不十分です。私はPHPMailerをお勧めします。セットアップには5分かかり、非常に強力です。 PEARメールモジュールはお勧めしません。 –