首页 > 解决方案 > Server.sendmail() 将我的收件人设置为密件抄送

问题描述

我正在尝试使用 python 向特定收件人发送电子邮件,但我的代码一直将收件人设置为密件抄送。如何更改它以将其设置为正常的 To?

谢谢!

这是我的代码

import smtplib


def send_email(subject, msg):
    login = "My_email"
    password = "password"
    reciever = "recipient@gmail.com"
    try:
        server = smtplib.SMTP('smtp.gmail.com:587')
        server.ehlo()
        server.starttls()
        server.login(login, password)
        message = 'Subject: {}\n\n{}'.format(subject, msg)
        server.sendmail(login, reciever, message)
        server.quit()
        print("Success: Email sent!")
    except:
        print("Email failed to send.")

subject = "Test email"
Sensor_Message = "This has worked"
send_email(subject, Sensor_Message)

标签: python-3.xsmtp

解决方案


我不知道 python,但我认为问题在于:您的邮件不包含 To: 或 Cc: 包含收件人电子邮件地址的电子邮件标题。

因为收件人的电子邮件地址在通过 SMTP 发送的 RCPT TO 命令列表中,但不在电子邮件标头中,所以收件人的 MUA(例如 Gmail、Outlook、Thunderbird 等)将其视为密件抄送。

要解决此问题,请确保邮件包含收件人的 To: 或 Cc: 标头。

无关的挑剔:正确的拼写是“receiver”

祝你好运!


推荐阅读