【问题标题】:Script works from PC but not on server脚本可以在 PC 上运行,但不能在服务器上运行
【发布时间】:2018-03-01 05:44:16
【问题描述】:

我写了一个 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)

【问题讨论】:

    标签: python email smtp smtp-auth


    【解决方案1】:

    所有 SMTP 操作都被 DigitalOcean 阻止,您需要通过控制面板使用 Support 创建工单并要求取消阻止 SMTP。这是为了防止垃圾邮件。

    如果解析过程太长,您的另一个选择是使用第三方邮件服务,该服务允许端口 2525 用于邮件,如 mandrill 或 mailgun。

    参考:https://meta.discourse.org/t/digital-ocean-is-blocking-outgoing-mail/66740/24

    【讨论】:

    • 谢谢!我去看看
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 2021-10-30
    • 2023-04-04
    • 1970-01-01
    • 2021-11-05
    相关资源
    最近更新 更多