簡體   English   中英

如何檢查電子郵件地址的存在

[英]How to check the existence of an email address

我負責開發一個需要批量上傳大量用戶數據的應用。 用戶的數據之一是電子郵件地址,我們需要確保該電子郵件地址確實存在,以便我們可以發送歡迎消息。

那么,我如何檢查電子郵件地址是否真的存在?

您可以使用npm email-validator檢查電子郵件地址的格式是否符合RFC5322

const validator = require('email-validator')
...
if (validator.validate('test@email.com')) {
   /* email format is correct */
}

但是您要問的是,是否有一種通用且可靠的方法可以向 intertoobz 詢問任何給定的電子郵件地址后面是否有真實的郵箱。

答案是否定的,除非向郵箱發送消息並要求收件人回復。 有一些不可靠的方法來檢查郵箱是否存在,但許多郵件傳輸代理並沒有實現它們。 為什么不? 垃圾郵件。

商業郵件服務(Constant Contact、MailChimp、SendGrid)提供將消息發送到郵箱請求許可以訂閱電子郵件服務的功能。 郵箱后面的人通常通過單擊超鏈接來響應。 超鏈接包含一個隨機數——一個難以猜測的隨機值——用於標識郵箱。 只有在URL點擊后才能確定地址存在。 有時,最終用戶會被要求使用這種技術“確認您的電子郵件地址”。

這些相同的服務非常適合跟蹤電子郵件退回和失敗,因此他們可以暫時了解哪些郵箱存在。 他們為了避免發送垃圾郵件會遇到很多麻煩,因為大型電子郵件提供商(gmail、outlook.com、comcast、charter 等)經常將發送電子郵件的服務器列入黑名單,以降低垃圾郵件負載。 當您使用一項服務時,您需要支付大量網絡工程工作以防止列入黑名單。

您可以在自己的應用程序中實現類似的“訂閱權限”服務,但解釋如何做到這一點超出了 StackOverflow 答案的范圍。 防止它被列入黑名單? 除非您的音量非常低,否則可能非常困難。

有關更多討論,請參閱此內容。

我可以使用 .net 檢查電子郵件地址是否存在嗎?

我使用了 SendGrid.com 的免費服務層,它運行良好。 我也成功地使用了 MailChimp。

您可以使用EmailChecker 之類的服務(我只是在谷歌上進行了快速搜索)來檢查電子郵件是否真的存在。

要使用 API,您需要支付高級費用,但您可以在此處查看它的工作原理: https : //email-checker.net

驗證電子郵件地址是合法的(例如,可郵寄的)格式是一回事,但它不會告訴您該地址有郵箱。 知道電子郵件地址是否“存在”的唯一方法是向它郵寄一些東西。 如果它 [最終] 反彈,您可以非常確定它不存在。 否則,您所知道的就是某人的 SMTP 服務器接受了該消息。

https://haacked.com/archive/2007/08/21/i-knew-how-to-validate-an-email-address-until-i.aspx/

和這個:

如何在不發送電子郵件的情況下檢查電子郵件地址是否存在?

暫無
暫無

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

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