57 lines
1.2 KiB
PHP
Executable File
57 lines
1.2 KiB
PHP
Executable File
<?php
|
|
|
|
require_once ('libphp-phpmailer/PHPMailerAutoload.php');
|
|
|
|
class Mail extends Vn\Lib\Method
|
|
{
|
|
function run ($db)
|
|
{
|
|
$db->selectDb ('vn2008');
|
|
$db->query ('START TRANSACTION');
|
|
|
|
$mailer = new Vn\Web\Mailer ($db);
|
|
$res = $db->query (
|
|
'SELECT * FROM mail WHERE sent = 0 ORDER BY DATE_ODBC DESC
|
|
LIMIT 20 FOR UPDATE');
|
|
|
|
$count = 0;
|
|
|
|
while ($row = $res->fetch_object ())
|
|
{
|
|
$sent = 1;
|
|
$status = 'OK';
|
|
|
|
try {
|
|
$mail = $mailer->createObject ($row->to, $row->text, $row->subject);
|
|
$mail->AddReplyTo ($row->reply_to, $conf->sender_name);
|
|
|
|
if (!empty ($row->path))
|
|
{
|
|
$attachment = '/mnt/cluster/pdfs/'. $row->path;
|
|
|
|
if (file_exists ($attachment))
|
|
$mail->AddAttachment ($attachment, '');
|
|
else
|
|
throw new Exception ("Attachment file could not be found: $attachment");
|
|
}
|
|
|
|
if (!$mail->Send ())
|
|
throw new Exception ('Send error: '.$mail->ErrorInfo);
|
|
|
|
$count++;
|
|
}
|
|
catch (Exception $e)
|
|
{
|
|
$sent = 2;
|
|
$status = $e->getMessage ();
|
|
}
|
|
|
|
$db->query ('UPDATE mail SET sent = #, error = # WHERE id = #',
|
|
[$sent, $status, $row['id']]);
|
|
}
|
|
|
|
$db->query ('COMMIT');
|
|
echo "Total $count mails sent\n";
|
|
}
|
|
}
|