Это немного странный способ многократно запускать этот код. Я бы определил функцию в вашем invoicetopdf.php
файле, загрузил ее в начало вашего скрипта, а затем вызвал функцию внутри цикла, чтобы получить данные PDF. Вы также вызываете mysql_fetch_array
дважды - один раз в цикле while, один раз в функции, что означает, что половина ваших данных будет сбиваться с пути.
require_once('invoicetopdf.php');
while(($data=MySQL_Fetch_Array($vysl))!=NULL) {
$message="";
$mail->AddStringAttachment(generatePDF($data), 'Invoice.pdf', 'base64', 'application/pdf');
...
//invoicetopdf.php:
require_once('../knihovny/pdf/fpdf.php');
function generatePDF($data) {
$pdf = new PDF();
$pdf->.....;
return $invoice=$pdf->Output('S');
}
Я также рекомендую переместить Username
и Password
вне цикла, и вам, вероятно, не нужно звонить clearAllRecipients()
;clearAddresses()
достаточно.
Установка SMTPDebug = 2
позволит вам увидеть больше того, что происходит на земле SMTP.