[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 メーリングリストの案内