我试图用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为什么不能工作的建议吗?