0

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

示例:如果我向我的用户发送消息,有些人可能会收到 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>");
      }`
4

1 回答 1

0

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

表结构可能类似于

email_id (PK) email_source(FK 到包含电子邮件的表) user_id(FK 到用户表)

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

这可以帮助您减轻 SMTP 的负担,或在一天内批量发送电子邮件。这也可以帮助您跟踪打开电子邮件或与电子邮件交互的用户。

希望有帮助。

于 2012-08-12T11:09:58.473 回答