通过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);