| version 1.6, 2005/04/12 20:34:01 |
version 1.7, 2005/04/16 13:14:30 |
|
|
| <?php |
<?php |
| |
|
| // $Platon: mylist/backend/sender/sender.php,v 1.5 2005/04/12 20:25:57 nepto Exp $ |
// $Platon: mylist/backend/sender/sender.php,v 1.6 2005/04/12 20:34:01 nepto Exp $ |
| |
|
| require_once dirname(__FILE__).'/../../mylist.config.php'; |
require_once dirname(__FILE__).'/../../mylist.config.php'; |
| |
require_once "Mail.php"; |
| |
|
| class CSender |
class CSender |
| { |
{ |
|
|
| function send() /* {{{ */ |
function send() /* {{{ */ |
| { |
{ |
| global $dbh; |
global $dbh; |
| |
|
| |
// setting up Mail factory |
| |
$params["sendmail_path"] = '/usr/lib/sendmail'; |
| |
$mf = Mail::factory("sendmail", $params); |
| |
|
| $sql = "SELECT queue_message_id, recipient FROM mylist_queue "; |
$sql = "SELECT queue_message_id, recipient FROM mylist_queue "; |
| $sql .= "WHERE dt_sent IS NULL "; |
$sql .= "WHERE dt_sent IS NULL "; |
| $sql .= "ORDER BY queue_message_id"; |
$sql .= "ORDER BY queue_message_id"; |
|
|
| { |
{ |
| |
|
| if ($row["queue_message_id"] != $last_queue_message_id ) { |
if ($row["queue_message_id"] != $last_queue_message_id ) { |
| |
|
| $sql = "SELECT message_header, message_body FROM mylist_queue_messages WHERE id = ".$row["queue_message_id"]; |
$sql = "SELECT message_header, message_body FROM mylist_queue_messages WHERE id = ".$row["queue_message_id"]; |
| |
|
| $res2 =& $dbh->query($sql); |
$res2 =& $dbh->query($sql); |
| if (PEAR::isError($res2)) |
if (PEAR::isError($res2)) |
| die($res2->getMessage()); |
die($res2->getMessage()); |
| |
|
| $res2->fetchInto($row2); |
$res2->fetchInto($row2); |
| |
// my parser: problem with Received headers |
| |
$headers = Array(); |
| |
$lines = explode("\n", $row2["message_header"]); |
| |
foreach ($lines as $line) |
| |
{ |
| |
$pos = StrPos($line, ":"); |
| |
$key = Trim(SubStr($line, 0,$pos)); |
| |
if (StrLen($key)) |
| |
$headers[$key] = Trim(SubStr($line, $pos+1)); |
| |
//$headers[StrToLower($key)] = Trim(SubStr($line, $pos+1)); |
| |
} |
| |
|
| |
|
| |
// or use mimedecode parser, the same as in processing message (validator.php) |
| |
$emailParser = new Mail_mimeDecode($row2["message_header"]."\n\n", "\n"); |
| |
$params['include_bodies'] = false; |
| |
$params['decode_bodies'] = false; |
| |
$params['decode_headers'] = true; |
| |
$structure = $emailParser->decode($params); |
| |
// print_r($structure->headers); |
| } |
} |
| |
|
| |
|
| |
|
| $last_queue_message_id = $row["$queue_message_id"]; |
$last_queue_message_id = $row["queue_message_id"]; |
| |
// $structure->headers["received"] = ""; |
| // subjekt spravy neni v struktre tabulky mylist_queue_messages, ale je zbytocne ho tam nateraz doplnat, kedze sa funkcia mail() aj tak nebude pouzivat a bude nahradena inou funkciou |
// print_r($structure->headers); |
| if (@$ret_mail = mail($row["recipient"], 'Test PhpMyList', $row2["message_body"], $row2["message_header"])) |
if (@$ret = $mf->send($row["recipient"], $headers, $row2["message_body"])) |
| |
// if (@$ret = $mf->send($row["recipient"], $structure->headers, $row2["message_body"])) |
| { |
{ |
| $sql = "UPDATE mylist_queue "; |
$sql = "UPDATE mylist_queue "; |
| $sql .= "SET dt_sent = '".Date("Y-m-d H:i:s")."' WHERE "; |
$sql .= "SET dt_sent = '".Date("Y-m-d H:i:s")."' WHERE "; |
|
|
| $sql .= "' AND "; |
$sql .= "' AND "; |
| $sql .= "recipient LIKE "; |
$sql .= "recipient LIKE "; |
| $sql .= "'".$row["recipient"]."'"; |
$sql .= "'".$row["recipient"]."'"; |
| |
|
| $res3 =& $dbh->query($sql); |
$res3 =& $dbh->query($sql); |
| if (PEAR::isError($res3)) |
if (PEAR::isError($res3)) |
| die($res3->getMessage()); |
die($res3->getMessage()); |