0
添付ファイルをPHPMailer経由で送信することができないようです。ここで私は電子メールを送信するためのコードを持っているものです。PHPMailerとDompdf添付ファイルの問題
改訂Automailer内容:
if(isset($_POST['type']) && $_POST['type'] == 'sendEmail'){
require_once 'phpMail/PHPMailerAutoload.php';
$email = $_POST['email'];
$uuid = $_POST['uuid'];
$file_content = file_get_contents(BASE_PATH.'email.php?uuid='.$uuid);
$pdf_content = file_get_contents(BASE_PATH.'pdf.php?uuid='.$uuid);
$mail = new PHPMailer;
$mail->From = ADMIN_EMAIL;
$mail->FromName = SENDER_NAME;
$mail->addAddress($email); // Name is optional
$mail->addReplyTo(REPLY_EMAIL, 'Reply Mail');
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Email From '.User;
$mail->Body = $file_content;
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
$mail->AddStringAttachment($output, attach.pdf);
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo "true";
}
exit;
}
改訂DOMPDFコード(pdf.php)
$html .= //Content Here
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$canvas = $dompdf->get_canvas();
$canvas->page_script('
if ($PAGE_NUM > 1) {
$font = Font_Metrics::get_font("helvetica", "bold");
$current_page = $PAGE_NUM-1;
$total_pages = $PAGE_COUNT-1;
$pdf->text(522, 770, "Page: $current_page of $total_pages", $font, 10, array(0,0,0));
}
');
$output = $dompdf->output();
file_put_contents('Attachment.pdf', $output);
は、私が関わるコードを削除した場合電子メールはちょうど良い(本文にemail.phpで)送信します。添付ファイル、しかし働くことを拒否...
さてあなたは、送信する前に、サーバー上のファイルを保存しましたそれはphpmailerと? – Naruto
@Narutoまずはクールな名前; D。第二に、もし私がする必要がないならば、私はそれを一時的なファイルに保存するだけです、第三に、私はPHPAutoMailerにかなりフレッシュで、確信が持てませんでしたどのようにそれを行うのか:D最高のコメントは、たとえそれがサーバーに保存する必要があったとしても、ベストプラクティスが何であれ一緒に行くことです。 – Steven
'$ dompdf-> stream()'メソッドは、ユーザブラウザ上でダウンロードダイアログを開くために使用されます。だからあなたはそれを添付ファイルとして使うことはできません。以下のナルトの方法を使用してください。 – ThinkTank