Я использую PHP Mailer, чтобы в основном отправлять интерактивный PDF-адрес на адрес электронной почты. Это работает локально, вызывая скрипт из PDF на сервер, но не работает, когда PDF-файл завершен на сервере.PHP Mailer -> PDF to Email предоставляет пустой PDF как приложение
код ниже:
<?php
if(!isset($HTTP_RAW_POST_DATA)) {
echo "The Application could not be sent. Please save the PDF and email it manually.";
exit;
}
echo "<html><head></head><body><img src='loading.gif'>";
//Create PDF file with data
$semi_rand = md5(time());
$pdf = $HTTP_RAW_POST_DATA;
$file = $semi_rand . ".pdf";
$handle = fopen($file, 'w+');
fwrite($handle, $pdf);
fclose($handle);
//
require_once('class/class.phpmailer.php');
include("class/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
$mail = new PHPMailer(false); // the true param means it will throw exceptions on errors, which we need to catch
$mail -> CharSet = "UTF-8";
$mail->IsSMTP(); // telling the class to use SMTP
try {
$mail->Host = "HOST"; // SMTP server
$mail->SMTPDebug = 2; // enables SMTP debug information (for testing)
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "HOST";
$mail->Port = 465;
$mail->Username = "USERNAME";
$mail->Password = "PASSWORD";
$mail->AddAddress('TO ADDRESS');
$mail->SetFrom('FROM ADDRESS');
$mail->Subject = 'SUBJECT';
$mail->Body = 'Please see attachment';
$mail->IsHTML(true);
$mail->AddAttachment($file); // attachment
$mail->Send();
//Delete the temp pdf file then redirect to the success page
// unlink($file);
echo '<META HTTP-EQUIV="Refresh" Content="0; URL="1.1.1.1">';
exit;
} catch (phpmailerException $e) {
//you can either report the errors here or redirect them to an error page
//using the above META tag
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}
//Verify the temporary pdf file got deleted
unlink($file);
?>
Есть ли что-то мне не хватает? Все значения для $ mail (хост, имя пользователя, пароль и т. Д.) Верны, но когда он создает PDF-файл для отправки, он приходит только через < 1kb. Мой PDF-файл вызывает этот файл PHP для отправки.
К интерактивным, вы имеете в виду в заполняемые формы PDF? Когда вы говорите, что он работает локально, что конкретно представляет собой содержимое электронной почты в формате PDF -webpage или только текстовые/числовые данные? Пользователь нажимает кнопку в PDF? Если да, почему бы просто не использовать [мероприятие для отправки формы Adobe] (https://acrobatusers.com/tutorials/form-submit-e-mail-demystified) для отправки электронной почты конкретному получателю. – Parfait