Как использовать smtplib в Python, как я могу отправить электронное письмо в будущем?

У меня есть пример кода Python здесь https://docs.python.org/2/library/email-examples.html где я могу успешно отправлять электронные письма.

# Import smtplib for the actual sending function
import smtplib

# Import the email modules we'll need
from email.mime.text import MIMEText

me = "my@email.com"
you = "your@email.com"
textfile = 'msg.txt'

# Open a plain text file for reading.  For this example, assume that
# the text file contains only ASCII characters.
fp = open(textfile, 'rb')
# Create a text/plain message
msg = MIMEText(fp.read())
fp.close()

# me == the sender's email address
# you == the recipient's email address
msg['Subject'] = 'The contents of %s' % textfile
msg['From'] = me
msg['To'] = you

# Send the message via our own SMTP server, but don't include the
# envelope header.
s = smtplib.SMTP('localhost')
s.sendmail(me, [you], msg.as_string())
s.quit()

Я бы хотел отложить отправку письма на два дня. Есть ли в smtplib параметр, позволяющий отложить отправку письма? Я не смог ничего найти самостоятельно.

2 ответа

Решение

Если вы используете Linux, вы можете использовать cron job.

Smtplib - это просто библиотека, и электронное письмо отправляется указанным вами провайдером. Если вы можете найти поставщика услуг электронной почты, который поддерживает отправку отложенных сообщений, то возможно

Если вы можете, вы можете запустить скрипт и использовать time.sleep(2 * 24 * 60 * 60). Но это означает, что скрипт должен работать в течение 2 дней.

Скорее всего нет.

Даже если вы сделаете это, заменив 5 на правильный номер:

import time
time.sleep(5) # delays for 5 seconds

Программа Python должна быть запущена все время

Другие вопросы по тегам