1

私は求人広告のウェブサイトを持っており、広告がカテゴリと購読している都市に投稿されたときにユーザーにメールを送信するmodを作成しています。今、私は問題を抱えています。このファイルをcronjobで1日1回実行するように設定しました。私のウェブサイトには1日に50件の広告が掲載されているため、ユーザーは1日に50通のメールを受け取ります。50通すべてのEメールを1つに含めたいので、ユーザーは1通のEメールを受け取りますが、その方法がわかりません。例:各メールには1つのリンクがあり、50のメールには50のリンクがあります。ユーザーが50個のリンクすべてを含む1通の電子メールのみを受信するようにしたいと思います。私はたくさんの方法を試しましたが、できませんでした。すべての提案を歓迎します。

ありがとう

4

3 に答える 3

0

このコードは変更するにはあまりにも悪いので、新しいコードを書く方がはるかに簡単です。すぐに送信するのではなく、配列を作成してメールの情報を配置することをお勧めします。配列に同じ電子メールのアイテムがすでに含まれている場合は、新しい電子メールを追加せずに、既存の電子メールに情報を追加します。すべての電子メールをフェッチした後、新しい配列を繰り返し処理して電子メールを送信します。

于 2012-04-22T11:18:39.703 に答える
0

すでにスクリプトのcronジョブを実行しているので、適切な時間(早朝または夜)を設定し、求人広告から投稿を保存するデータベースにクエリを実行し、最後に投稿された50件を選択して、メールに追加して送信します。最新の投稿メールを受信するために登録されたユーザーに送信します。私が何かを誤解しない限り、かなり簡単に思えます。

また、(上記のスクリプトで)コードの小さなブロックごとにPHPにジャンプしたり、PHPからジャンプしたりする理由についても非常に興味があります。それは非常に気が散り、率直に言って私はコードを読みたくさえありませんでした。上に表示されているものからPHPを離れる理由はありません-それらがすべてここに表示するために一緒に含めた小さなスニペットでない限り。その場合は、私の苦情を無視してください。

<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>

/ scratcheshead

于 2012-04-22T12:07:29.723 に答える
0

メールを配列キーとして設定する配列に広告情報を収集するだけです。

$recipients = array();
while ($row = mysql_fetch_assoc($result)) {
  $email = $row["email"];
  if (!array_key_exists($email, $recipients)) {
    $recipients[$email] = array();
  }
  $recipients[$email][] = $row;
}

この後、配列が作成され、各電子メールには可変数の$row-entriesが含まれます。foreach-loopを使用して、これらのエントリをメールテンプレートに追加する必要があります。

于 2012-05-06T12:46:07.107 に答える