【问题标题】:Send python email using SMTP with a subject使用带有主题的 SMTP 发送 python 电子邮件
【发布时间】:2015-04-29 13:57:06
【问题描述】:

我正在尝试使用 SMTP 在 Python 中发送一封电子邮件,其中包含发件人地址、收件人地址、密件抄送地址、主题和消息。我有电子邮件发送,它甚至应该发送到 BCC,唯一的问题是电子邮件的 消息 说:

To: example@gmail.com

Subject: Subject goes here

this is the email that I’m sending

当我只希望邮件本身显示邮件所属的位置,并且未设置电子邮件的主题时,因此有一个空白主题。这是我的设置方式:

def sendEmail(fromAddress, toAddress, bccAddress, appName, message):

    subject = "Subject goes here"
    BODY = string.join((
            "From: %s\r\n" % fromAddress,
            "To: %s\r\n" % toAddress,
            "Subject: %s\r\n" % subject,
            "\r\n",
            message
            ), "\r\n")

    #im using arbitrary values here, when I run it I use actual login info
    username = 'example@gmail.com'
    password = 'password'
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.ehlo()
    server.starttls()
    server.login(username,password)

    toList = []
    bccList = []
    toList.append(toAddress)
    bccList.append(bccAddress)
    server.sendmail(fromAddress, toList + bccList, BODY)
    server.quit()

【问题讨论】:

    标签: python email smtp bcc subject


    【解决方案1】:

    使用email 包 (docs)。

    from email.mime.text import MIMEText
    
    def send_mail(to, from_addr, subject, text):
        msg = MIMEText(text)
        msg['Subject'] = subject
        msg['From'] = from_addr
        msg['To'] = to
        s = smtplib.SMTP_SSL("smtp.gmail.com")
        s.login(smtp_user, smtp_pass)
        # for Python 3
        s.send_message(msg)
        # OR
        # for Python 2 (or 3, will still work)
        s.sendmail(from_addr, [to], msg.as_string())
        s.quit()
    

    【讨论】:

    • 我如何发送密件抄送?
    • 我相信你只是设置了msg['Bcc'],但并不完全确定。文档应该说。
    • 它说 SMTP_SSL 没有属性“send_message”
    • 啊,send_message 是 Python 3 的补充。对于 Python 2,请尝试 s.sendmail(from_addr, [to], msg.as_string())
    猜你喜欢
    • 2017-11-30
    • 2020-05-01
    • 2021-03-26
    • 2017-03-25
    • 1970-01-01
    • 2017-12-23
    • 2013-10-09
    相关资源
    最近更新 更多