python-3.x - 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,但我认为问题在于:您的邮件不包含 To: 或 Cc: 包含收件人电子邮件地址的电子邮件标题。
因为收件人的电子邮件地址在通过 SMTP 发送的 RCPT TO 命令列表中,但不在电子邮件标头中,所以收件人的 MUA(例如 Gmail、Outlook、Thunderbird 等)将其视为密件抄送。
要解决此问题,请确保邮件包含收件人的 To: 或 Cc: 标头。
无关的挑剔:正确的拼写是“receiver”
祝你好运!
推荐阅读
- flutter - Flutter:禁用下拉按钮选项
- swift - Swift URLSession 不适用于本地主机调用
- python - 语音转文字、文字转语音和笑脸
- javascript - 在检查字段之后和提交表单之前做一些事情
- python - 为 ESP-01S 和 Raspberry Pi Pico 之间的 UART 发出打包/解包消息
- android - 从 firebase 获取当前登录的用户数据以及个人资料图片
- javafx-11 - JavaFX 舞台表演功能在 MAC 操作系统上不起作用
- python - Rocksdb undefined symbol: ZSTD_versionNumber Cpython
- c++ - 将枚举开关从 C++ 转换为 C
- python - 为什么我在创建 pygame 时收到错误“ValueError: list.remove(x): x not in list”?