php posta ekleri garip bir davranış

0 Cevap php

Ben gerçekten garip bir durum ile burada biraz yardıma ihtiyacım var .. ben birden fazla eki bulunan e-postalar göndermek için bir webmail formu yaptı, dün kutudan çalıştı ama bugün sadece bir eki değil, çoklu olarak 1 dosya gönderir. O_O

Ben de eski bir revizyona benim SVN dönmek ve sorun hala, herhangi bir fikir devam? Bu başka bir gün çalışma şeyler fren, ben sorun SMTP sunucusu ya da bir şey olmalı bence ne .. gerçekten garip. Yardım edin lütfen!

Kod:

        $semi_rand = md5(time()); 
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";


            $attachments = TRUE;
        $body = "This is a multi-part message in MIME format.\n\n" .
        "--{$mime_boundary}\n" .
        "Content-Type: text/plain; charset=iso-8859-1\n" .
        "Content-Transfer-Encoding: 7bit\n\n" .
        $body . "\n\n";
        $body .= "--{$mime_boundary}\n";
        $attach = array();
        for($i=0; $i<count($_FILES['file']['name']);$i++)
        {
            $tmp_name = $_FILES['file']['tmp_name'][$i];
            $type = $_FILES['file']['type'][$i];
            $name = $_FILES['file']['name'][$i];
            $size = $_FILES['file']['size'][$i];

            if (file_exists($tmp_name)){
                $kb = $size/1024;
                $kbSize = round($kb*100)/100;

                if(is_uploaded_file($tmp_name)){
                    $file = fopen($tmp_name,'rb');
                    $fdata = fread($file,filesize($tmp_name)); //stream file to var and send it in headers
                    fclose($file);
                    $fdata = chunk_split(base64_encode($fdata));
                    $body .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$name\"\n" . 
                        "Content-Disposition: attachment;\n" . " filename=\"$name\"\n" . 
                        "Content-Transfer-Encoding: base64\n\n" . $fdata . "\n\n";
                    $body .= "--{$mime_boundary}-\n";
                }
            }       
        }
        $sent = myMailer::sendAttached($from,$to,$subject,$body,$mime_boundary,$multi);

MyMailer sınıf, sendAttached Yöntemi:

    public static function sendAttached($from,$to,$subject,$body,$mime,$multi=FALSE)
{

    $headers = 'From: Website <'.$from.'>'. "\r\n".
    'Reply-To: '.$from. "\r\n".
    "MIME-Version: 1.0\r\n" .
    "Content-Type: multipart/mixed;\r\n" .
    " boundary=\"{$mime}\"";

    if($multi == TRUE && is_array($to)){
        foreach($to as $item)
        {
            mail(trim($item),$subject,$body,$headers);
        }
        return TRUE;
    }else{
        return mail($to,$subject,$body,$headers);
    }
}

0 Cevap