簡體   English   中英

如何確保我不會通過php中的測試站點向客戶發送任何電子郵件

[英]How can I make sure that I don't send any email to customers from testing site in php

我必須在現場制作現有網站的副本以供測試。 我得到了公司的許可。

但在數據庫中,我有超過10,000條客戶記錄和電子郵件。 在各種測試期間,當我弄亂網站時,我不想意外地向他們發送任何電子郵件。

什么是避免這種情況的最好方法

我確實需要電子郵件功能來測試其他內容

你可以使用的最愚蠢的方法往往是最好的這些東西,因為我們都有可能出錯的任何日子。 當一個錯誤真的毀了你的一天時,最好小心,甚至是偏執的偏執狂。

以下是一些可行的方法:

默認情況下的無效配置

絕對最安全的系統是將生產服務器的SMTP服務器配置保留在生產服務器上,並且僅保留在生產服務器上。 您的開發副本將具有一些其他SMTP配置,例如測試GMail SMTP帳戶。 通常,GMail會限制您在普通帳戶中每天發送500封電子郵件,因此如果您真的以某種方式搞砸了,您將很快達到此限制。

替換數據庫中的客戶電子郵件

另一件需要考慮的事情是擦除數據庫中的所有客戶電子郵件,刪除它們並用mytestaccount+0000@gmail.commytestaccount0001@gmail.com替換它們,如果你真的想要接收和檢查它們,那么利用這個事實+和隨后的內容將被忽略,以便交付給GMail,從而有效地為您提供無限的潛在電子郵件地址。

舉個例子:

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

您必須將其自定義為您想要的任何電子郵件地址。 這樣做的一個好處是,您將無法在開發驅動器上找到有價值的客戶電子郵件地址列表以及任何相關的備份。 為了徹底,您應該盡可能地加擾哈希密碼,這樣數據庫對於潛在的黑客來說基本上毫無價值。 密碼從未正確保護的備份中被刮掉太多次。

呈現客戶電子郵件無法送達

下一個最好的方法是在您不想發送的系統中的封電子郵件的末尾添加“.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可以以類似的方式使用。

沒有單點故障

然而,遠離悲劇是一種合乎邏輯的考驗並不是一種好的感覺。 在遇到慘敗之前,你應該確保有件事情必須出錯。

如果您不想更改數據庫中的代碼或數據,並且在本地計算機上使用postfix,則可以將所有外發郵件重寫為您的地址。 更多信息: http//www.postfix.org/ADDRESS_REWRITING_README.html

將所有電子郵件地址更改為email#domain.com ,例如email@domain.com 測試完成后,您可以用@替換#

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM