使用PHP发送带有PDF文件附件的电子邮件
发布时间:2020-12-13 17:57:05 所属栏目:PHP教程 来源:网络整理
导读:好的,这是我的第一个帖子,我在线搜索但没有运气. 我正在做实习,我正在开展一个项目,要求我创建一个网页,当用户提交他/她的信息时生成一个pdf文件.一旦客户点击提交按钮,就需要做三件事: 将信息存储到数据库(完成), 向员工发送包含新客户信息(已完成)的电子
好的,这是我的第一个帖子,我在线搜索但没有运气.
我正在做实习,我正在开展一个项目,要求我创建一个网页,当用户提交他/她的信息时生成一个pdf文件.一旦客户点击提交按钮,就需要做三件事: >将信息存储到数据库(完成), 我的意思是,客户确实收到了一封电子邮件,但是当他/她打开pdf文件时,我收到以下错误消息:
请记住,这是我创建pdf文件附件项目的时间.如果有人可以帮我解决这个问题,那就太好了.谢谢! 这是我的代码: <?php // once there are no errors,as soon as the customer hits the submit button,it needs to send an email to the staff with the customer information $msg = "Name: " .$_POST['name'] . "n" ."Email: " .$_POST['email'] . "n" ."Phone: " .$_POST['telephone'] . "n" ."Number Of Guests: " .$_POST['numberOfGuests'] . "n" ."Date Of Reunion: " .$_POST['date']; $staffEmail = "staffinfo"; mail($staffEmail,"You have a new customer",$msg); // using the mail php function to send the email. mail(to,subject line,message) //once the customer submits his/her information,he/she will receive a thank you message attach with a pdf file. $pdf=new FPDF(); $pdf->AddPage(); $pdf->SetFont("Arial","B",16); $pdf->Cell(40,10,"Hello World!"); // email information $to = $_POST['email']; $from = $staffEmail; $subject = "Thank you for your business"; $message = "Thank you for submitting your information!"; // a random hash will be necessary to send mixed content $separator = md5(time()); // carriage return type (we use a PHP end of line constant) $eol = PHP_EOL; // attachment name $filename = "yourinformation.pdf"; // encode data (puts attachment in proper format) $pdfdoc = $pdf->Output("","S"); $attachment = chunk_split(base64_encode($pdfdoc)); // encode data (multipart mandatory) $headers = "From: ".$from.$eol; $headers .= "MIME-Version: 1.0".$eol; $headers .= "Content-Type: multipart/mixed; boundary="".$separator.""".$eol.$eol; $headers .= "Content-Transfer-Enconding: 7bit".$eol; $headers .= "This is a MIME encoded message.".$eol.$eol; // message $headers .= "--".$separator.$eol; $headers .= "Content-Type: text/html; charsrt="iso-8859-1"".$eol; $headers .= $message.$eol.$eol; // attachment $headers .= "--".$separator.$eol; //$headers .= "Content-Type: application/octet-stream; name="".$filename.""".$eol; $headers .= "Content-Type: application/zip; name="".$filename.""".$eol; $headers .= "Content-Transfer-Encoding: base64".$eol; $headers .= "Content-Disposition: attachment".$eol.$eol; $headers .= $attachment.$eol.$eol; $headers .= "--".$separator."--"; // send message mail($to,$subject,$message,$headers); } } ?> // once there are no errors,it needs to send an email to the staff with the customer information $msg = "Name: " .$_POST['name'] . "n" ."Email: " .$_POST['email'] . "n" ."Phone: " .$_POST['telephone'] . "n" ."Number Of Guests: " .$_POST['numberOfGuests'] . "n" ."Date Of Reunion: " .$_POST['date']; $staffEmail = "staffemail"; mail($staffEmail,he/she will receive a thank you message attach with a pdf file. // creating a pdf file $pdf_filename = tempnam(sys_get_temp_dir(),"pdf"); $pdf=new FPDF(); $pdf->AddPage(); $pdf->SetFont("Arial","Title"); $pdf->Ln(); $pdf->SetFont("Arial","",12); $pdf->Cell(15,"Name:"); $pdf->SetFont("Arial","I",$_POST['name']); $pdf->Ln(); $pdf->SetFont("Arial","Email:"); $pdf->SetFont("Arial",$_POST['email']); $pdf->Ln(); $pdf->SetFont("Arial","Phone:"); $pdf->SetFont("Arial",$_POST['telephone']); $pdf->Ln(); $pdf->SetFont("Arial",12); $pdf->Cell(40,"Number of Guests:"); $pdf->SetFont("Arial",$_POST['numberOfGuests']); $pdf->Ln(); $pdf->SetFont("Arial","Date Of Reunion:"); $pdf->SetFont("Arial",$_POST['date']); // if file doesn't exists or if it is writable,create and save the file to a specific place if(!file_exists($pdf_filename) || is_writable($pdf_filename)){ $pdf->Output($pdf_filename,"F"); } else { exit("Path Not Writable"); } // using the phpmailer class // create a new instance called $mail and use its properties and methods. $mail = new PHPMailer(); $staffEmail = "staffemail"; $mail->From = $staffEmail; $mail->FromName = "name"; $mail->AddAddress($_POST['email']); $mail->AddReplyTo($staffEmail,"name"); $mail->AddAttachment($pdf_filename); $mail->Subject = "PDF file attachment"; $mail->Body = "message!"; // if mail cannot be sent,diplay error message //if(!$mail->Send()){ //echo "<div id="mailerrors">Message could not be sent</div>"; //echo "<div id="mailerrors">Mailer Error: " . $mail->ErrorInfo . "</div>"; //} else { // else...if mail is sent,diplay sent message //echo "<div id="mailerrors">Message sent</div>"; //} // delete the temp file unlink($pdf_filename); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |