我有一个python函数来发送电子邮件通知。我已将登录呼叫包含在我的本地SMTP服务器中进行身份验证,但是正在返回电子邮件,说明“553邮件被拒绝,因为您的IP在PBL中”。进一步阅读https://www.spamhaus.org/pbl表明,显然我没有被阻止发送电子邮件,我只需要先进行身份验证。
我尝试过base64编码,以避免将密码作为纯文本发送而没有成功。
我也查看了Pysasl库,但我不确定如何使用它来验证我的SMTP服务器。
是否有人对正确使用base64编码,pysasl库或是否存在满足正确身份验证要求的更好方法有任何指导?
我的代码如下。
def emailNotify(self,userid):
SMTPserver = 'localhost'
sender = '***' # blanked
username = '***' # blanked
receiver = '***' # blanked
pwd = '***' # blanked
text_subtype = 'plain'
msg = 'requested data was posted to dashboard for '+userid
subject = 'confirmation of POST\'d data for '+userid
try:
msg = MIMEText(msg, text_subtype)
msg['Subject'] = subject
msg['From'] = sender
conn = smtplib.SMTP(SMTPserver)
conn.login(username, pwd)
try:
conn.sendmail(sender, receiver, msg.as_string())
finally:
conn.quit()
except:
print('message sending failed')
提前致谢。
答案 0 :(得分:0)
您有两种构建发送邮件程序的方法:
构建防弹解决方案:
简单地说,这意味着您必须实现用于读取和解码服务器返回的代码(可能很奇怪)以及所有各种身份验证方法,而不是TLS
使用适用于 服务器
的自定义连接方法恕我直言......更简单......