Как использовать 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 должна быть запущена все время