我正在尝试使用Python发送电子邮件,但是当我尝试使用smtplib时,它只是挂起,直到超时。我确定我缺少明显的东西,或者是由防火墙问题引起的。这是为我重现问题的最少代码
from smtplib import SMTP
smtp = SMTP("smtp.mailgun.org", port=25, local_hostname=None, timeout=30)
我错过了什么吗?还是有某种方法告诉smtp不要验证SSL / TLS?
如果我使用请求,我可以让mailgun毫无问题地发送邮件:
import requests
key = 'MY_API_KEY'
recipient = 'recipient@domain.com'
domain = 'sandboxblablablaredacted.mailgun.org
request_url = r'https://api.mailgun.net/v3/{domain}/messages'
request = requests.post(request_url,
auth=('api', key),
data={
'from': 'email@address.com',
'to': recipient,
'subject': 'Hello',
'text': 'Hello from Mailgun'
},
verify=False,
)
print(f'Status: {request.status_code}')
print(f'Body: {request.text}')
注意verify=False
。关于smtplib为什么不起作用的任何建议?