成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

felix0913 / 1398人閱讀

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

原文來自 Laravist 社區(qū): https://www.codecasts.com/blo...

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

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

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

最常規(guī)的正則表達式的匹配

郵件的 DNS 有效性

檢驗 MX 記錄的有效性

屏蔽一次性郵件服務(wù)商

更多細(xì)節(jié),比如發(fā)起發(fā)信請求

validator.pizza

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

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

$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 的項目當(dāng)中,我們還可以直接擴展 Validator 來實現(xiàn)郵件地址有效性的驗證,在 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"])

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/23091.html

相關(guān)文章

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

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

    Tecode 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<