我如何根据语句或作为块来运行代码语句,从而获得不同的结果



我有一个代码,如果匹配标准:

import datetime
import smtplib
today = datetime.date.today()
email_date = today
items = [1, 2]
gmail_email = "put_your_email_here"
password = "put your password here"
if email_date == today:
    # send email
    sent_from = gmail_email
    sent_to = ['email_1', 'email_2']
    sent_subject = 'Subject of the email'
    sent_body = ("""Hello,
    This is part of a reproducible code
    Kind regards""")
    email_text = """
    From: %s
    To: %s
    Subject: %s
    %s
    """ % (sent_from, ', '.join(sent_to), sent_subject, sent_body)
    server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
    server.ehlo()
    server.login(gmail_email, password)
    server.sendmail(sent_from, sent_to, email_text)
    server.close()

但是,如果我运行整个代码,则发送的电子邮件具有空的主题和空白,并且所有内容都放在电子邮件的"来自"中。

如果我通过语句运行语句(在条件之后开始),我会正确收到电子邮件。我在这里缺少什么?

这可能与您将文本块分配给email_text变量的方式有关。文本是缩进的,而电子邮件应在行开始时具有标题字段。尝试将其更改为:

        email_text = """
From: %s
To: %s
Subject: %s
%s
""" %(sent_from, ', '.join(sent_to), sent_subject, sent_body)

最新更新