gpt4 book ai didi

python - 如何在 python 中使用 cron 和 smtp 安排在特定时间发送电子邮件?

转载 作者:太空宇宙 更新时间:2023-11-04 00:12:31 24 4
gpt4 key购买 nike

到目前为止,我只能发送电子邮件。这是我的代码:

import smtplib

email_user = 'myemail@gmail.com'
server = smtplib.SMTP ('smtp.gmail.com', 587)
server.starttls()
server.login(email_user, 'email pass')

#SET TIME HERE?
from crontab import CronTab

#EMAIL
message = 'sending this from python!'
server.sendmail(email_user, email_user, message)
server.quit()

我正在努力设定发送电子邮件的时间。如果有人也能帮我弄清楚如何添加附件,那就太好了!

最佳答案

假设您的 send_email() 函数已经正常工作,我会这样做:

import datetime as dt
import time
import smtplib

def send_email():
email_user = 'myemail@gmail.com'
server = smtplib.SMTP ('smtp.gmail.com', 587)
server.starttls()
server.login(email_user, 'email pass')

#EMAIL
message = 'sending this from python!'
server.sendmail(email_user, email_user, message)
server.quit()

send_time = dt.datetime(2018,8,26,3,0,0) # set your sending time in UTC
time.sleep(send_time.timestamp() - time.time())
send_email()
print('email sent')

如果你想定期发送邮件,你可以这样做:

import datetime as dt
import time
import smtplib

def send_email():
email_user = 'myemail@gmail.com'
server = smtplib.SMTP ('smtp.gmail.com', 587)
server.starttls()
server.login(email_user, 'email pass')

#EMAIL
message = 'sending this from python!'
server.sendmail(email_user, email_user, message)
server.quit()

def send_email_at(send_time):
time.sleep(send_time.timestamp() - time.time())
send_email()
print('email sent')

first_email_time = dt.datetime(2018,8,26,3,0,0) # set your sending time in UTC
interval = dt.timedelta(minutes=2*60) # set the interval for sending the email

send_time = first_email_time
while True:
send_email_at(send_time)
send_time = send_time + interval

您还可以生成一个线程并让该线程处理电子邮件的发送。

关于python - 如何在 python 中使用 cron 和 smtp 安排在特定时间发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52022134/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com