簡體   English   中英

通過PHP PEAR發送電子郵件附件

[英]Send Email Attachment through PHP PEAR

我真的需要你的幫助。 請在下面找到我的代碼:

if (isset($_FILES['file']) and $_FILES['file'] <> '') { // Jika email disertai attachment
        $crlf = "\n";

        $headers['MIME-Version'] =  '1.0';
        $headers['Content-Type'] =  'text/html; charset="UTF-8';
        $headers['Content-Transfer-Encoding'] =  'base64\r\n';
        $headers['Date'] =  date('r', $_SERVER['REQUEST_TIME']);
        $headers['Message-ID'] =  $_SERVER['REQUEST_TIME'] . md5($_SERVER['REQUEST_TIME']) . '@' . $_SERVER['SERVER_NAME'];
        $headers['From']    = "do-not-reply@sbm-itb.ac.id";
        $headers['To']      = $to;
        $headers['Subject'] = $subject;

        $mime = new Mail_mime(array('eol' => $crlf));

        $mime->setHTMLBody($body);
        foreach($_FILES['file']['tmp_name'] as $key => $value){
            $file_name = $_FILES['file']['name'][$key]; //nama file (tanpa path)
            $tmp_name  = $_FILES['file']['tmp_name'][$key]; //nama local temp file di server
            $file_type = $_FILES['file']['type'][$key]; //tipe filenya (langsung detect MIMEnya)

            $fp      = fopen($tmp_name, 'r');
            $content = fread($fp, filesize($tmp_name));
            $content = addslashes($content);
            fclose($fp);
            $data = chunk_split(base64_encode($content));

            //$mime->addAttachment($tmp_name, $file_type);
            $mime->addAttachment($data, $file_type);
        }
            $body = $mime->get();
            $headers = $mime->headers($headers);

我成功發送了HTML文本郵件。 但是,沒有我上傳的附件。 我上面的代碼有什么問題?

謝謝。

我在這里看不到您的郵件功能嗎? 嘗試這樣的事情:

上載附件:

$max_allowed_file_size = 1250; // size in KB 
$allowed_extensions = array("jpg", "jpeg", "gif", "bmp", "png");
$upload_folder = './uploads/'; //<-- this folder must be writeable by the script
$path_of_uploaded_file = $upload_folder . $name_of_uploaded_file;

$tmp_path = $_FILES["uploaded_file"]["tmp_name"];
//Get the uploaded file information
$name_of_uploaded_file =  basename($_FILES['uploaded_file']['name']);

//get the file extension of the file
$type_of_uploaded_file = substr($name_of_uploaded_file, 
                        strrpos($name_of_uploaded_file, '.') + 1);

$size_of_uploaded_file = $_FILES["uploaded_file"]["size"]/2048;

附件,標題等的郵寄

 $message = new Mail_mime(); 
    $message->setHTMLBody($text); 
    $message->addAttachment($path_of_uploaded_file);
    $body = $message->get();
    $extraheaders = array("From"=>$from, "Subject"=>$subject,"Reply-To"=>$visitor_email);
    $headers = $message->headers($extraheaders);
    $mail = Mail::factory("mail");
    $mail->send($to, $headers, $body);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM