Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z phpmailer
siwybob
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 8.07.2009

Ostrzeżenie: (0%)
-----


Witam,
Korzystam z "class.phpmailer.php" do wysyłania eamili z newsletterem

Wywołuje skrypt cron.php i wysyłam do adresatów newslettera (np. 25 naraz)
Baza adresów jest w tabelach mysqla (tabela z polami: id, from_name, from_email, to_name, to_email, subject, body, sent, attempt)

Wszystko przechodzi, ale zauważyłem jeden problem: jeśli odczytam sobie maila z subskrypcji i użyje "odpowiedz nadawcy" (replay-to, lub zajrze we właściwości maila) w sekcji replay-to pojawia mi się, np. 25 odbiorców, z identycznym emailem (tym wysyłkowym, np.: newsletter@poczta.pl przykładowo...)

linia z Replay-to wygląda przykładowo tak:

(...)
Reply-to: "SYSTEM SUBSKRYPCJI" <newsletter@poczta.pl>, "SYSTEM SUBSKRYPCJI" <newsletter@poczta.pl>, "SYSTEM SUBSKRYPCJI" <newsletter@poczta.pl>, "SYSTEM SUBSKRYPCJI" <newsletter@poczta.pl>, "SYSTEM SUBSKRYPCJI" <newsletter@poczta.pl>, "SYSTEM SUBSKRYPCJI" <newsletter@poczta.pl>, "SYSTEM SUBSKRYPCJI" <newsletter@poczta.pl>, "SYSTEM SUBSKRYPCJI" <newsletter@poczta.pl>
(...)



skrypt cron.php wygląda tak:

  1. <?php
  2.  $sql_connection = connect_to_database();
  3.  $result = mysql_query("SELECT * FROM cron_mail ORDER BY id ASC LIMIT 25";
  4.  if (mysql_num_rows($result) != 0)  {
  5.    require "class/class.phpmailer.php";
  6.    $mailer = new PHPMailer();
  7.    $mailer->CharSet = "iso-8859-2";
  8.    $mailer->IsHTML(true);
  9.    $mailer->Encoding = "8bit";
  10.    $mailer->Port = 25;
  11.    while ($row = mysql_fetch_array($result))  {
  12.      if (eregi('poczta.pl', $row[from_email]) || eregi('poczta2.pl', $row[from_email])) {
  13.        $mailer->From = $row[from_email];
  14.      } else {
  15.        $mailer->From = $config[form_nadawca_email];
  16.      }
  17.    $mailer->FromName = $row[from_name];
  18.    $mailer->AddAddress($row[to_email], $row[to_name]);
  19.    $mailer->AddReplyTo($row[from_email], $row[from_name]);
  20.    $mailer->Subject = $row[subject];
  21.    $mailer->Body = stripslashes(nl2br($row[body]));
  22.    if(!$mailer->Send())  {
  23.      mysql_query("UPDATE cron_mail SET attempt = (attempt+1) WHERE id = '".$row[id]."' LIMIT 1");
  24.    }  else  {
  25.      mysql_query("DELETE FROM cron_mail WHERE id = '".$row[id]."' LIMIT 1");
  26.    }
  27.    if ($row[attempt] == ($config[cron_mail_attempt]-1))  {
  28.      mysql_query("DELETE FROM cron_mail WHERE id = '".$row[id]."' LIMIT 1");
  29.    }
  30.    $mailer->ClearAllRecipients();
  31.  }
  32.  optimize_table('cron_mail');
  33.  }
  34.  disconnect_from_database($sql_connection);
  35. ?>



jak to zmienić, może jakieś uwagi...

THX
siwybob
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 12:04