国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

驗證一個郵件地址的真實性

felix0913 / 1316人閱讀

摘要:所以在用戶注冊的時候,我們通常會絞盡腦汁來驗證一個郵箱地址的有限性。本文并不是簡單地討論使用正則表達式來驗證一個郵箱地址是否正確,而是希望通過更多的手段來真正驗證一個郵箱地址的郵箱性。

原文來自 Laravist 社區: https://www.codecasts.com/blo...

一個郵件地址是否有效關系一定程度上決定了這個用戶是否是優質用戶,或者說成為優質用戶的潛質更大。所以在用戶注冊的時候,我們通常會絞盡腦汁來驗證一個郵箱地址的有限性。

本文并不是簡單地討論使用正則表達式來驗證一個郵箱地址是否正確,而是希望通過更多的手段來真正驗證一個郵箱地址的郵箱性

本文驗證一個郵件地址有效性的內容包含以下幾個內容:

最常規的正則表達式的匹配

郵件的 DNS 有效性

檢驗 MX 記錄的有效性

屏蔽一次性郵件服務商

更多細節,比如發起發信請求

validator.pizza

啊哈,在這里推薦大家可以使用 https://www.validator.pizza 郵件驗證服務,免費,準確率還很高。具體的實現方式是通過向 validator.pizza 發起 HTTP 請求,用來驗證用戶郵箱地址是否有效,比如,普通的 PHP 代碼可以是這個樣子:

$email = "666@qq.com"; // 這是一個 laravist 社區注冊的垃圾郵件

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.validator.pizza/email/" . $email);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

或者在 Laravel 的項目當中,我們還可以直接擴展 Validator 來實現郵件地址有效性的驗證,在 AppServiceProviderboot() 方法添加下面的代碼:

public function boot()
    {
        Validator::extend("isValid", function ($attribute, $value, $parameters, $validator) {
                $request = (new Client())->get("https://www.validator.pizza/email/" . $value);
                $body = json_decode($request->getBody()->getContents());
                switch ( $body ) {
                    case $body->status == 400:
                        return false;
                    case !$body->mx:
                        return false;
                    case $body->disposable:
                        return false;
                    default:
                        return true;
                }
            }, "郵箱地址不可用");
}        

然后在驗證的時候可以這樣使用:

$this->validate(request(),["email"=>"required|isValid"])

這樣一來,基本上就可以應付 90% 以上的郵件地址驗證,包含一次性郵件地址驗證有效性驗證

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23091.html

相關文章

  • 2021年,用更現代方法使用PGP(下)

    摘要:上篇鏈接年,用更現代的方法使用上年,用更現代的方法使用中公鑰的發布與交換討論公鑰安全交換的中文文章比較少,而這一環是整個加密體系的重中之重。年月,有攻擊者惡意向公鑰服務器提交了對兩個著名網友的簽名背書。此事件中的受害者的證書就被簽名了次。上篇鏈接:2021年,用更現代的方法使用PGP(上)2021年,用更現代的方法使用PGP(中)PGP 公鑰的 發布 與 交換討論公鑰安全交換的中文文章比較少...

    Tecode 評論0 收藏0

發表評論

0條評論

felix0913

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<