2017-07-21 1 views
0

Ich habe das System eingerichtet, wo beim Klicken auf die Schaltfläche, der Vertrag mit pdf angehängt wird. Ich habe mpdf verwendet, um die E-Mail an die erforderliche E-Mail-Adresse zu senden. Der folgende Code funktioniert gut auf meinem lokalen Host und macht den Job richtig, aber wenn ich es auf den Server setze, zeigt es keinen Fehler, aber auch keine E-Mails senden, da ich nichts erhalte. Kannst du mir helfen herauszufinden, was mache ich vielleicht falsch?Senden PDF-E-Mail mit 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 = '[email protected]'; 
    //The function to send email when the contract is requested 
    $recepients = array(
     $email, 
     '[email protected]' 
    ); 
    $mailto = implode(',', $recepients); 
    $from_name = 'Random Project'; 
    $from_mail = '[email protected]'; 
    $replyto = '[email protected]'; 
    $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> 
     [email protected]<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

nicht senden und nicht empfangen sind nicht dasselbe – rtfm

+0

Ihr viel besser mit einer der Standard-Mailing-Bibliotheken wie phpmailer als E-Mail() – rtfm

+0

rtfms - Nur wenn Sie verstehen können, dass ich das zu Testzwecken an mich selbst sende. –

Antwort

0

Die Antwort wird aus dem Thread genommen: mPDF Auto Generated PDF Mailer sends blank Email von https://stackoverflow.com/users/3818025/drehx

Also, habe ich nur PHP Mailer die E-Mail zu senden. Nur dieses Posting jemand zu helfen, die es als Beispiel verwenden möchte:

try { 

$mail = new PHPMailer; 
$mail->AddAddress($email); 
$mail->AddAddress('[email protected]'); 
$mail->AddAddress('[email protected]'); 
$mail->SetFrom('[email protected]'); 
$mail->AddReplyTo('[email protected]'); 
$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> 
    [email protected]<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! 
}