python - 邮件未发送给 CC 中的人员

标签 python smtp smtplib

我有以下使用 python 发送邮件的脚本

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import os

FROMADDR = "myaddr@server.com"
PASSWORD = 'foo'

TOADDR   = ['toaddr1@server.com', 'toaddr2@server.com']
CCADDR   = ['ccaddr1@server.com', 'ccaddr2@server.com']

# Create message container - the correct MIME type is multipart/alternative.
msg            = MIMEMultipart('alternative')
msg['Subject'] = 'Test'
msg['From']    = FROMADDR
msg['To']      = ', '.join(TOADDR)
msg['Cc']      = ', '.join(CCADDR)

# Create the body of the message (an HTML version).
text = """Hi  this is the body
"""

# Record the MIME types of both parts - text/plain and text/html.
body = MIMEText(text, 'plain')

# Attach parts into message container.
msg.attach(body)

# Send the message via local SMTP server.
s = smtplib.SMTP('server.com', 587)
s.set_debuglevel(1)
s.ehlo()
s.starttls()
s.login(FROMADDR, PASSWORD)
s.sendmail(FROMADDR, TOADDR, msg.as_string())
s.quit()

当我使用脚本时,我看到邮件同时发送到 toaddr1toadd2 但是 ccaddr1ccaddr2 根本没有收到邮件。

有趣的是,当我检查 toaddr1toadd2 收到的邮件时,它表明 ccaddr1ccaddr2 存在于 CC 中。

脚本有错误吗?最初我认为这可能是我的邮件服务器的问题。我用 Gmail 试了一下,看到了同样的结果。也就是说,无论是我当前邮件服务器中的帐户,还是我在 CC 中的 Gmail 帐户,收件人都不会收到邮件,即使“收件人”字段中的人正确接收邮件并且具有中提到的正确地址抄送字段

最佳答案

我认为您在发送邮件时需要将 CCADDR 和 TOADDR 放在一起:

s.sendmail(FROMADDR, TOADDR+CCADDR, msg.as_string())

您在邮件中正确添加了地址,但您还需要信封上的抄送地址。

来自 docs :

Note The from_addr and to_addrs parameters are used to construct the message envelope used by the transport agents.

关于python - 邮件未发送给 CC 中的人员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9974972/

相关文章:

java - 将 Javamail 和 Greenmail 用于 SMTPS/SSL

java - 使用java程序通过smtp和ssl发送电子邮件失败

python - 如何在回复中添加电子邮件列表

python - 没有足够的值来解包(预期 3,得到 1)

python - Tensorflow:尝试使用未初始化的值 beta1_power

python - 特定的 Python 版本字节码可以在不同的解释器上运行吗?

python - 从现有列计算新列

python - Apache Beam 中的异步 API 调用

c# - 现有连接被 SMTP 客户端中的远程主机强行关闭

python - BCC 未使用 python smtplib 在 gmail 上隐藏