首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Mailer脚本

Python Mailer脚本
EN

Stack Overflow用户
提问于 2013-05-30 14:42:19
回答 1查看 1.8K关注 0票数 0

对于一个非常简单的python电子邮件脚本,我有一个奇怪的问题。脚本本身运行良好,但是当我在现有代码中(在if语句中)使用脚本时,它似乎将FROM、TO、SUBJECT和文本字段放在电子邮件正文中(而不仅仅是文本字段)

脚本

代码语言:javascript
复制
import smtplib
SERVER = "localhost"
FROM = "test@test.com"
TO = ["myemail@email.com"] # must be a list
SUBJECT = "Test"
TEXT = "This message was sent with Python's smtplib."

message = """\
From: %s
To: %s
Subject: %s

%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)

server = smtplib.SMTP(SERVER)
server.sendmail(FROM, TO, message)
server.quit()

当我将它包装在一个If语句中时,它会变得混乱,并将所有内容都放入电子邮件正文中。

代码语言:javascript
复制
if X == 1:
    import smtplib
    SERVER = "localhost"
    FROM = "test@test.com"
    TO = ["myemail@email.com"] # must be a list
    SUBJECT = "Test"
    TEXT = "This message was sent with Python's smtplib."

    message = """\
    From: %s
    To: %s
    Subject: %s

    %s
    """ % (FROM, ", ".join(TO), SUBJECT, TEXT)

    server = smtplib.SMTP(SERVER)
    server.sendmail(FROM, TO, message)
    server.quit()
else:
    continue

这将给我一封如下所示的邮件

代码语言:javascript
复制
From - test@test.com
Subject -
To - undisclosed-recipients

    From: test@test.com
    To: myemail@email.com
    Subject: Hello!

    This message was sent with Python's smtplib.

如前所述,如果我从If语句中删除代码,它就会正常运行,并包含正确的主题行和正文。也许我遗漏了一些明显的东西?

任何帮助都将不胜感激。谢谢我的朋友们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-30 14:49:58

代码语言:javascript
复制
    message = """\
    From: %s
    To: %s
    Subject: %s

    %s
    """ % (FROM, ", ".join(TO), SUBJECT, TEXT)

此邮件的关键字FromToSubject等前有空格,因此这些关键字不会被识别为header field names。因此,所有这些都将成为消息正文的一部分。

要解决此问题,请删除文本:

代码语言:javascript
复制
    message = """\
From: %s
To: %s
Subject: %s

%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)

或者,为了保持缩进的可读性,

代码语言:javascript
复制
import textwrap
if X == 1:
    message = textwrap.dedent("""\
        From: %s
        To: %s
        Subject: %s
    
        %s
        """ % (FROM, ", ".join(TO), SUBJECT, TEXT))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16829582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档