我多年来一直使用以下代码从我的网站发送电子邮件,但问题是它有时会多次发送邮件。
示例:如果我向用户发送消息,有些人可能会收到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>");
}`
答案 0 :(得分:0)
我认为您可能需要稍微复杂一点,以添加跟踪。例如,在数据库中添加一个新表,其中包含每个发送的电子邮件的记录。
表结构可能类似于
email_id(PK) email_source(FK到表格,包括电子邮件) user_id(FK到用户表)
然后,您可以将电子邮件发送给未收到此电子邮件版本的用户。
这可以帮助您卸载SMTP,或者通过当天分发的批量发送电子邮件。此外,这可以帮助您跟踪打开电子邮件或与电子邮件交互的用户。
希望有所帮助。