我已经设置了系统,在点击按钮时,合同将附带pdf发送。我使用mpdf将电子邮件发送到所需的电子邮件地址。 以下代码在我的本地主机上正常工作并正确完成工作,但当我把它放在服务器上时,它没有显示任何错误,但也没有发送任何电子邮件,因为我没有收到任何东西。 你能帮我弄清楚我做错了什么吗?
// Setup PDF
$mpdf = new mPDF('utf-8', 'Letter', 0, '', 0, 0, 0, 0, 0, 0); // New PDF object with encoding & page size
ob_start();
$mpdf->setAutoTopMargin = 'stretch'; // Set pdf top margin to stretch to avoid content overlapping
$mpdf->setAutoBottomMargin = 'stretch'; // Set pdf bottom margin to stretch to avoid content overlapping
$mpdf->WriteHTML($stylesheet,1); // Writing style to pdf
$mpdf->WriteHTML($html); // Writing html to pdf
// FOR EMAIL
$content = $mpdf->Output('', 'S'); // Saving pdf to attach to email
$content = chunk_split(base64_encode($content));
$emailto = 'abc@abc.com';
//The function to send email when the contract is requested
$recepients = array(
$email,
'abc@abc.com'
);
$mailto = implode(',', $recepients);
$from_name = 'Random Project';
$from_mail = 'abc@abc.com';
$replyto = 'abc@abc.com';
$uid = md5(uniqid(time()));
$subject = 'Wedding Contract Form';
$message = '
</<!DOCTYPE html>
<html>
</style>
<body>
<img src="http://tanglewoodestate.com.au/assets/contract-header.png" width="400px">
<div width ="300px" style="background-color:#f5e9dd;padding:10px">
<p>Hi <strong>'.$cname.'</strong>,<p>
<p>Please Find the <strong>attached contract</strong> from the Tanglewood Estate.</p>
<p>For any questions or queries,Please contact Us at:<br>
ABC<br>
abc@abc.com<br>
</div>
<img src="http://tanglewoodestate.com.au/assets/contract-footer.png" width="400px">
</body>
</html>';
$filename = 'Wedding_contract.pdf';
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$replyto."\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/html;charset=UTF-8\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/pdf; name=\"".$filename."\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$header .= $content."\r\n\r\n";
$header .= "--".$uid."--";
$is_sent = @mail($mailto, $subject, "", $header);
//$mpdf->Output(); // For sending Output to browser
//$mpdf->Output('Wedding_contract.pdf','D'); // For Download
ob_end_flush();
}
答案 0 :(得分:0)
答案取自mPDF Auto Generated PDF Mailer sends blank Email
的主题:https://stackoverflow.com/users/3818025/drehx所以,我只是使用PHP Mailer发送电子邮件。只是张贴这个来帮助任何想要用它作为例子的人:
try {
$mail = new PHPMailer;
$mail->AddAddress($email);
$mail->AddAddress('abc@abc.com');
$mail->AddAddress('abc@abc.com');
$mail->SetFrom('abc@abc.com');
$mail->AddReplyTo('abc@abc.com');
$mail->Subject = 'Tanglewood Contract';
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
$mail->isHTML(true);
$mail->Body = '</<!DOCTYPE html>
<html>
</style>
<body>
<img src="http://tanglewoodestate.com.au/assets/contract-header.png" width="400px">
<div width ="300px" style="background-color:#f5e9dd;padding:10px">
<p>Hi <strong>'.$cname.'</strong>,<p>
<p>Please Find the <strong>attached contract</strong> from the Tanglewood Estate.</p>
<p>For any questions or queries,Please contact Us at:<br>
Tanglewood Estate<br>
abc@abc.com<br>
</div>
<img src="http://tanglewoodestate.com.au/assets/contract-footer.png" width="400px">
</body>
</html>';
//$mail->MsgHTML("*** Form attached! Please see the attached form (.pdf).");
$mail->AddStringAttachment($content, $filename = 'TanglewoodContract.pdf',
$encoding = 'base64',
$type = 'application/pdf'); // attachment
if (isset($_FILES['attached']) &&
$_FILES['attached']['error'] == UPLOAD_ERR_OK) {
$mail->AddAttachment($_FILES['attached']['tmp_name'],
$_FILES['attached']['name']);
}
$mail->Send();
echo "<div style='margin-left:4%;'>Message Sent OK</div>\n";
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}