邮件没有被发送给CC的人

Pul*_*mon 21 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()
Run Code Online (Sandbox Code Playgroud)

当我使用的脚本,我看到邮件传送到两个toaddr1toadd2 然而ccaddr1ccaddr2没有收到邮寄的.

有趣的是,当我检查接收到的电子邮件通过toaddr1toadd2,它表明 ccaddr1ccaddr2存在于CC.

脚本中有错误吗?最初我认为这可能是我的邮件服务器的问题.我尝试使用Gmail并看到相同的结果.也就是说,无论是我当前邮件服务器中的帐户还是CC中的我的Gmail帐户,收件人都不会收到邮件,即使"收件人"字段中的人员正确收到邮件并且具有正确的地址CC领域

bri*_*ice 37

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

s.sendmail(FROMADDR, TOADDR+CCADDR, msg.as_string())
Run Code Online (Sandbox Code Playgroud)

您正确地将地址添加到邮件中,但您也需要信封上的cc地址.

来自文档:

注意 from_addr和to_addrs参数用于构造传输代理使用的消息信封.

  • 这里要注意的另一个重要的事情是 - 所需的参数是一个from-address字符串,一个to-address字符串列表(一个裸字符串将被视为一个带有1个地址的列表)和一个消息字符串.确保你有to_addr是一个列表对象. (4认同)

Ign*_*ams 5

您在邮件中指定了抄送条目,但未在信封中指定。您的工作是确保消息也发送到 CC 和 BCC 条目。