成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

驗(yàn)證一個(gè)郵件地址的真實(shí)性

felix0913 / 1329人閱讀

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

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

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

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

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

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

郵件的 DNS 有效性

檢驗(yàn) MX 記錄的有效性

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

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

validator.pizza

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

$email = "[email protected]"; // 這是一個(gè) laravist 社區(qū)注冊(cè)的垃圾郵件

$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 的項(xiàng)目當(dāng)中,我們還可以直接擴(kuò)展 Validator 來實(shí)現(xiàn)郵件地址有效性的驗(yà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;
                }
            }, "郵箱地址不可用");
}        

然后在驗(yàn)證的時(shí)候可以這樣使用:

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/23091.html

相關(guān)文章

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

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

    Tecode 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<