6

自宅でのテスト目的で、既存のサイトのコピーを作成する必要があります。会社の許可は取っています。

しかし、データベースには 10,000 を超える顧客レコードと電子メールがあります。さまざまなテスト中にサイトを混乱させているときに、誤ってメールを送信したくありません。

それを避ける最善の方法は何ですか

他のものをテストするために電子メール機能が必要です

4

3 に答える 3

7

あなたが使用できる最もばかげた方法は、多くの場合、これらのことに最適です. 間違いが本当にあなたの一日を台無しにする可能性があるときは、たとえ境界線の偏執狂であっても注意するのが最善です.

機能する可能性のあるいくつかの方法を次に示します。

デフォルトでインポテンツ設定

最も安全なシステムは、運用サーバーの SMTP サーバー構成を運用サーバーに保持し、運用サーバーだけに保持することです。開発用コピーには、GMail SMTP アカウントのテストなど、他の SMTP 構成が含まれます。通常、GMail では通常のアカウントで 1 日あたり 500 通のメールに制限されているため、何らかの方法で本当に失敗すると、すぐにこの制限に達してしまいます。

データベース内の顧客の電子メールを置き換える

考慮すべきもう1つのことは、データベース内のすべての顧客メールをスクラブし、それらを削除して置き換えることです.実際にそれらを受信して​​検査したい場合は、GMailへの配信で以降のコンテンツが無視されるという事実を効果的に利用mytestaccount+0000@gmail.comします.潜在的な電子メールアドレスを無制限に提供します。mytestaccount0001@gmail.com+

例として:

UPDATE customers SET email=CONCAT('mytestaccount+', customer.id, '@gmail.com')

必要なメールアドレスになるようにこれをカスタマイズする必要があります。これを行う利点の 1 つは、開発ドライブに保存されている顧客の電子メール アドレスの貴重なリストとそれに関連するバックアップがないことです。徹底するには、おそらくハッシュ化されたパスワードもスクランブルして、潜在的なハッカーにとってデータベースが基本的に無価値になるようにする必要があります. 適切に保護されていないバックアップからパスワードがスクレイピングされる回数が多すぎます。

顧客の電子メールを配信不能にする

次善の方法は、送信したくないシステム内のすべての電子メールの末尾に「.test」を追加して、誰かの受信トレイに行く代わりにハード バウンスすることです。

これは基本的にワンライナーです。

UPDATE customers SET email=CONCAT(email, '.test')

配達時に電子メールを上書きする

電子メール メッセージの受信者を意図的に置き換える場所など、条件付きロジックをいつでも含めることができます。誤ってそのスイッチを無効にする可能性があるため、これは危険な場合がありますが、いつものように注意してください.

実際には、これは次のようになります。

if ($i_should_not_spam_customer_accounts_accidentally)
{
  $mail->to = "nobody@nowhere"
}

API ドリブン サービスを使用する

一部のメール サービス プロバイダーには、メール メッセージのテストに役立つ API があります。私はPostageAppの共同設立者です。このサービスは、メールを受信するが配信しないように特別に構成された API キーを使用してメッセージを送信できるように設計されています。MailGunなどの他のサービスも同様の方法で使用できます。

単一障害点なし

とはいえ、悲劇から離れた 1 つの論理的なテストであることは良い気分ではありません。大失敗する前に、うまくいかないことがいくつかあることを確認する必要があります。

于 2012-11-30T08:28:49.067 に答える
0

データベース内のコードやデータを変更したくない場合、およびローカルマシンでpostfixを使用している場合は、すべての送信メールをアドレスに書き換えることができます。詳細:http ://www.postfix.org/ADDRESS_REWRITING_README.html

于 2012-11-30T08:23:04.970 に答える
-6

すべての電子メール アドレスを、たとえば に変更email@domain.comemail#domain.comます。テストが完了したら、 に置き換えることができ#ます@

于 2012-11-30T08:06:17.377 に答える