0

私は自分のサイトから電子メールを送信するために以下のコードを何年も使用してきましたが、問題は時々何度もメールを送信することです。

例: ユーザーにメッセージを送信すると、5 回受信する人もいれば、1 人だけに送信しても 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

追跡を追加するには、ソリューションを少し複雑にする必要があると思います。たとえば、送信された各電子メールのレコードを持つ新しいテーブルを DB に追加します。

テーブル構造は次のようになります

email_id (PK) email_source (メールを含むテーブルへの FK) user_id (ユーザー テーブルへの FK)

次に、このバージョンの電子メールを受信して​​いないユーザーに電子メールを送信できます。

これは、SMTP の負荷を軽減したり、メールを 1 日にまとめて送信したりするのに役立ちます。同様に、これは、メールを開いたり、メールを操作したりしたユーザーを追跡するのにも役立ちます.

それが役立つことを願っています。

于 2012-08-12T11:09:58.473 に答える