我写了一个小的python脚本,每天上午10点自动发送电子邮件。该脚本在运行Linux Mint 18的笔记本电脑上工作正常。但是当我将脚本部署到运行Ubuntu 16.04.3的服务器(从DigitalOcean获取的droplet)时,脚本会出现STMP身份验证错误。
允许安全性较低的应用登录,并在我的Gmail帐户中启用其他设置。
这是脚本 -
import schedule
import time
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
fromaddr = "yadullahabidi@gmail.com"
toaddr = "yadullahabidi@gmail.com"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "Attendance for Yadullah Abidi"
body = "Good morning Surender Ji. I reached office at 10:00 AM today."
msg.attach(MIMEText(body, 'plain'))
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr,"password")
text = msg.as_string()
def job():
server.sendmail(fromaddr, toaddr, text)
schedule.every().day.at("08:00").do(job)
while True:
schedule.run_pending()
time.sleep(1)
答案 0 :(得分:1)
使用DigitalOcean阻止所有SMTP操作,您需要通过控制面板创建带有支持的故障单,并要求取消阻止SMTP。这是为了防止垃圾邮件而实施的。
您的另一个选择是使用第三方邮件服务,如果解决过程太长,则允许端口2525用于邮件,例如mandrill或mailgun。
参考:https://meta.discourse.org/t/digital-ocean-is-blocking-outgoing-mail/66740/24