問題タブ [mass-emails]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
50 参照

excel - 電子メール コンテンツの日付が静的にならないように VBA コードを修正する方法

静的な電子メール コンテンツの日付が動的になるように VBA コードを変更するのに苦労しています。私のコードを見直して、私のエラーを教えてください。

このコードは、グループにメールを送信するためのものです。メールにはいくつかの日付が記載されていますが、定期的に変更される可能性があります。そこで、ExcelでONE CELL(L3)を更新して、メール内容(タイトル含む)の日付を自動で変更できるようにしたいです。

0 投票する
2 に答える
85 参照

security - ユーザー固有の個人データを含むページに一意のユーザー ID を渡す方法

Emma (サード パーティ ベンダー) を通じて、ランディング ページへのリンクを含む大量のメールを送信しています。ランディング ページはパーソナライズされ、ユーザーの識別情報 (名前、役職、電子メール) の一部が表示されます。さらに、Emma のデータベース内のそのユーザーのレコードに保存される、いくつかのユーザー設定を収集するフォームがあります。

サードパーティのデータベースのユーザーID列は増分であるため、クエリ文字列を介してその値を追加することはできませんwww.example.com?landing/?uid=522.他の値uid(523... や 444 など) を推測して、他のユーザーの設定を変更したり、個人データを簡単に表示したりできます。

要点は、API を介して検索し、ユーザーのこのランディング ページに個人情報/データを動的に表示して再送信するために使用できる ID (または他の一意の値) を渡すための安全な方法を見つけようとしているということです。ユーザーベース。

Emma のリストに一意の識別子用のカスタム列を追加するというアイデアがありました。次に、(Emma の API にアクセスする) スクリプトを記述して、ID (または電子メール アドレスも一意であるため) を BASE64 エンコードし、それを各ユーザーのリストに追加します。私のメールでは、それを の形式でランディング ページに渡すことができますが、?xy=ZGF2ZUBidWRvbmsuY29tこれはエンコードであり、暗号化ではないことがわかっているため、それほど安全ではありません...または、その点ではまったく安全ではありません。

私の知る限り、リンク内の余分な文字が何であるか、BASE64デコード、BASE64エンコード、別の電子メールアドレスまたは整数、新しくエンコードされたBASE64でリクエストを作成する能力および/または傾向を持っているメーリングを受信する人のリモートリスクはありません。意図しない方法でシステムを操作するための値。

しかし、この質問の目的のために、これを行う「正しい」方法、または同様の状況で現在どのレベルのセキュリティが取られているかを知りたいです。私はJWTトークンといくつかのOOthのものについて読んだことがありますが、対処するEmma APIも持っていることを考えると、それが可能かどうかはよくわかりません...および/またはそれがやり過ぎである場合.

ユーザーに「侵害された」(意図的かどうかにかかわらず)フォームを送信する機能を与えるときに、他のユーザーが指定した値とともにフォームを再送信するために使用される値をページに渡すのに適切/標準的なものは何ですか?最悪の場合、競合他社の 1 つが悪い設定をして、私たちの Emma メーリング リストに保存されたデータをオプトインする可能性がありますか?

0 投票する
1 に答える
286 参照

php - PHP大量メール送信ルーチンの最良のアプローチは?

約 800 人のユーザーに、ユーザーが指定できる時間に、毎日のニュース メールを送信するサイトを作成しています。私の問題は、スクリプトの実行に時間がかかり、タイムアウトになることです。そのため、これをより適切に行う方法についてアドバイスを求めています。

現在のアプローチ:

ユーザーは、ID、受信時刻、および送信済みフラグとともに「メーリング キュー」データベース テーブルに配置されます。

次に、次のことを行うCRONスクリプトを毎分実行しています。

  1. 「受信時間」が現在以下で、まだ送信されていないメーリング キューからすべてを取得します
  2. ユーザーをループし、設定テーブルに参加して、選択したカテゴリを取得します (ユーザーごとに最大約 30)。
  3. カテゴリごとに、最新の 3 つの記事を検索します
  4. PHPMailer を使用して、このコンテンツを含む HTML メールを準備します
  5. PHPMailer は Mailgun SMTP を使用して、SMTP サーバーの過負荷を回避しています
  6. ユーザーにメールを送信し、データベースで送信済みとしてマーク

これまでの私の観察は次のとおりです。

  1. ブラウザー内で実行してスクリプトをテストすると、数分間実行が非常に遅くなり、その後タイムアウトになります (電子メールは送信されません)。
  2. CRON 経由で 1 分ごとに実行すると、40 分間で大量のメール (約 1400 件) が送信されます。これは、スクリプト自体が重複しており、送信済みフラグが確実に更新されていないためだと思います。

大多数のユーザーは同時にメールを受信するように設定されているため、これに基づいて「最悪のシナリオ」のテストを行っています

質問

  1. データベースにクエリを実行し、その場で各ユーザーの HTML 電子メール コンテンツを生成するスクリプトは重すぎますか? 事前にコンテンツを生成し、ユーザーに対してメーリング キューに保存する方がよいのではないかと考えています。
  2. Beanstalkd のようなキュー マネージャーは役に立ちますか? 私はそれを調べましたが、私のルーチンに実装する方法を見つけるのに苦労しています.

最終的には、各ユーザーが期待する時間に確実にメールを送信する必要があります。

どんなアドバイスも大歓迎です!