簡體   English   中英

使用mailgun和python驗證電子郵件是否存在

[英]Verify if an email exists using mailgun and python

Mailgun有一個電子郵件驗證程序,他們有一個示例響應,但我不知道如何使用它。 我想驗證“ is_valid”是對還是錯,並清除不良電子郵件的電子郵件列表。 當我打印函數調用時,得到響應[401]。 我如何詢問is_valid是否為false?

def get_validate(email):
        return requests.get(
            "https://api.mailgun.net/v3/address/validate",
            auth=("api", "key"),
            params={"address": email})


with open('emails.csv', 'r') as file:
    reader = csv.reader(file)
    for i in reader:
        s = ''
        try:
            print(i[0])
            s = s + i[0]
            print(get_validate(s))
        except IndexError:
            pass

樣本響應為:

{
    "address": "foo@mailgun.net",
    "did_you_mean": null,
    "is_disposable_address": false,
    "is_role_address": false,
    "is_valid": true,
    "parts": {
        "display_name": null,
        "domain": "mailgun.net",
        "local_part": "foo"
    }
}

401是身份驗證失敗,這是因為"key"是無效的API密鑰。 當您在mailgun上注冊時,您的帳戶將獲得一個API密鑰,並且需要使用它來代替"key" 在這里查看mailgun文檔

def get_validate(email):
    return requests.get(
        "https://api.mailgun.net/v3/address/validate",
        auth=("api", "pubkey"),
        params={"address": email})


emails = list()

with open('emails.csv', 'r') as file:
    reader = csv.reader(file)
    for i in reader:
        s = ''
        try:
            #print(i[0])
            s = s + i[0]
            response = get_validate(s)
            status = response.status_code
            content = response.headers['content-type']
            valid = response.json()['is_valid']
            emails.append((s, valid))
        except IndexError:
            pass
    with open('clean_emails.csv', 'w') as outfile:
        writer = csv.writer(outfile)
        writer.writerows(emails)

這是最終的解決方案。

一種簡單的方法是將CSV上載到Mailgun列表中,然后使用MailboxValidator導入列表並執行驗證。

https://www.mailboxvalidator.com/resources/articles/how-to-import-email-list-from-mailgun/

如果您打算以后使用Mailgun發送電子郵件,這是最實用的方法。

但是,如果您只是在尋找電子郵件驗證API,請嘗試使用MailboxValidator免費API。

免費API密鑰: https//www.mailboxvalidator.com/pay/9

API文檔: https : //www.mailboxvalidator.com/api-single-validation

您每30天可獲得300次免費驗證。

用於調用API的示例Python代碼

import httplib
import urllib
import hashlib

p = { 'key': 'Enter_License_Key', 'format': 'json', 'email': 'Enter_Email' }

conn = httplib.HTTPConnection("api.mailboxvalidator.com")
conn.request("GET", "/v1/validation/single?" + urllib.urlencode(p))
res = conn.getresponse()
print res.read()

暫無
暫無

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

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