[PHP-users 25497] 添付ファイルの送信について
Toshinori Kawai
kawai @ dipross.jp
2005年 4月 27日 (水) 14:28:13 JST
お世話になっております。河合ともうします。
現在、PHPで添付ファイルを使ってメールを送信しようと試みていますが、
送信はできますが、添付ファイルが開けない状態にあります。(今回はPDFを送信
しようと試みています)
http://masataka.mailbbs.com/php/sendmail/
上記URLの関数を使って、(内容は以下)他のページからsendmail関数を呼び出
してみましたが添付ファイルに関しては、ファイル名が、
「(application/octet-stream)」となってしまいます。
この関数を使ってわからないのが、$filesの指定なのですが、何をいれたらPDF
を送信できるのかわからないです。
教えていただけませんでしょうか?
(呼び出しもと)
----------中略
--------------------------------------------------------------------------------
$from = $_REQUEST["txt_send_name"];
$to = "自分のメールアドレス";
$replyto=NULL;
$subject = "論文投稿";
$message = $_REQUEST["txt_send_detail"];
$headers="";
$filename['filename'] = $_FILES['file_send']['name'];
$filename['nameencode'] = "";
$filename['binary'] = $_FILES['file_send']['type'];
sendmail($from, $to, $replyto, $subject, $message, $headers, $filename);
----------中略
--------------------------------------------------------------------------------
(呼び出し先)
<?php
function sendmail($from, $to, $replyto, $subject, $message, $headers, $files)
{
$boundary = "----=_NextPart_".uniqid(rand(),1);
$subject = mb_encode_mimeheader(mb_convert_encoding($subject, "JIS", "auto"), "JIS");
$body = mb_convert_encoding($message, "JIS", "auto");
$headers .= "From: ".$from."\r\n";
if($replyto != NULL)
$headers .= "Reply-To: ".$replyto."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "X-Mailer: member_mail_send_temp.php\r\n";
//print_r(count($files));
if(count($files) > 0)
{
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";
$message = "--$boundary\r\n";
$message .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\r\n\r\n";
$message .= "$body\r\n";
//for($i = 0; $i < count($files); $i++)
//{
// $fileinfo = $files[$i];
$fileinfo = $files[0];
$message .= "--$boundary\r\n";
if($fileinfo["nameencode"] != NULL)
{
$fileinfo["filename"] = mb_convert_encoding($fileinfo["filename"], $fileinfo["nameencode"], "auto");
$fileinfo["filename"] = mb_encode_mimeheader($fileinfo["filename"]);
}
$message .= "Content-Type: application/octet-stream; name=\"".$fileinfo["filename"]."\"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-Disposition: attachment; filename=\"".$fileinfo["filename"]."\"\r\n\r\n";
$fileinfo["binary"] = chunk_split(base64_encode($fileinfo["binary"]));
$message .= $fileinfo["binary"]."\r\n\r\n";
// }
$message .= "--$boundary\r\n";
$message .= "Content-Transfer-Encoding:7bit\r\n";
}
else
{
$headers .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"";
$message = "$body\r\n";
}
return mail($to, $subject, $message, $headers);
}
?>
PHP-users メーリングリストの案内