循环电子邮件代码

时间:2012-08-12 10:21:21

标签: php email loops smtp

我多年来一直使用以下代码从我的网站发送电子邮件,但问题是它有时会多次发送邮件。

示例:如果我向用户发送消息,有些人可能会收到5次等等,即使我只发送给一个人,他也可能会得到3次。

require_once "Mail.php";

$from = "xxx Support <noreply@xxxx.com>";
$to = "$name <$email>";
$subject = "xxxxx";
$body = "xxx";

$host = "mail.xxx.com";
$username = "noreply+xxx.com";
$password = "xzcsd=sfd?hdssc";

$headers = array ('From' => $from,
  'To' => $to,
  'Subject' => $subject);
$smtp = Mail::factory('smtp',
  array ('host' => $host,
    'auth' => true,
    'username' => $username,
    'password' => $password));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
  echo("<p>" . $mail->getMessage() . "</p>");
      }`

1 个答案:

答案 0 :(得分:0)

我认为您可能需要稍微复杂一点,以添加跟踪。例如,在数据库中添加一个新表,其中包含每个发送的电子邮件的记录。

表结构可能类似于

email_id(PK)  email_source(FK到表格,包括电子邮件)  user_id(FK到用户表)

然后,您可以将电子邮件发送给未收到此电子邮件版本的用户。

这可以帮助您卸载SMTP,或者通过当天分发的批量发送电子邮件。此外,这可以帮助您跟踪打开电子邮件或与电子邮件交互的用户。

希望有所帮助。