Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过PHP发送电子邮件附件_Php_Email_Pear_Mime_Email Attachments - Fatal编程技术网

通过PHP发送电子邮件附件

通过PHP发送电子邮件附件,php,email,pear,mime,email-attachments,Php,Email,Pear,Mime,Email Attachments,我真的需要你的帮助。请在下面找到我的代码: 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';

我真的需要你的帮助。请在下面找到我的代码:

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);
if(isset($_文件['file'])和$_文件['file']''){//Jika电子邮件目录附件
$crlf=“\n”;
$headers['MIME-Version']='1.0';
$headers['Content-Type']='text/html;charset=“UTF-8”;
$headers['Content-Transfer-Encoding']='base64\r\n';
$headers['Date']=日期('r',$服务器['REQUEST\u TIME']);
$headers['Message-ID']=$\u-SERVER['REQUEST\u-TIME'].md5($\u-SERVER['REQUEST\u-TIME'])。@.$\u-SERVER['SERVER\u-NAME'];
$headers['From']=”不允许-reply@sbm-itb.ac.id”;
$headers['To']=$To;
$headers['Subject']=$Subject;
$mime=新邮件\u mime(数组('eol'=>$crlf));
$mime->setHTMLBody($body);
foreach($\u FILES['file']['tmp\u name']作为$key=>$value){
$file\u name=$\u FILES['file']['name'][$key];//nama文件(tanpa路径)
$tmp_name=$_FILES['file']['tmp_name'][$key];//nama本地临时文件di服务器
$file\u type=$\u FILES['file']['type'][$key];//tipe filenya(langsung-MIMEnya)
$fp=fopen($tmp_名称,'r');
$content=fread($fp,filesize($tmp_name));
$content=addslashes($content);
fclose($fp);
$data=chunk_split(base64_encode($content));
//$mime->addAttachment($tmp\u name,$file\u type);
$mime->addAttachment($data,$file\u 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;

我已经尝试了$mime->addAttachment($tmp\u name,$file\u type),所有附件都已成功发送。但是,文件名没有显示为真实的文件名。例如:php505.tmp。
 $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);