Я использую python smtplib для отправки электронных писем. Они прибывают в пункт назначения, но поле «Кому» отсутствует. В Gmail поле «Кому» пустое, но в Thunderbird написано «нераскрытые получатели». Я сделал поиск в Google, но ничего не нашел.
Я не вижу никакой ошибки в коде, который объясняет это, но я следил за некоторыми фрагментами кода из другого вопроса о переполнении стека, поэтому, возможно, я что-то упустил.
Это код отправителя почты:
def connect_and_send(send_from, send_to, carbon_copy, msg):
confp = ConfigParser()
confp.read("config/mail.ini")
server = str(confp.get('mail', 'host'))
port = str(confp.get('mail', 'port'))
user = str(confp.get('mail', 'username'))
password= str(confp.get('mail', 'password'))
smtp = smtplib.SMTP_SSL()
smtp.connect(server, port)
smtp.login(
user,
password
)
send_to.append(carbon_copy)
smtp.sendmail(send_from, send_to, msg.as_string())
def send_mail(send_from, send_to, carbon_copy, subject, text, signature, files=None):
assert isinstance(send_to, list)
if ARGS.debug:
print "MAIL to:", send_to
print "MAIL from:", send_from
print "MAIL subject", subject
print "with {0} files attached".format(len(files))
msg = MIMEMultipart('alternative')
msg["Subject"] = subject
msg["From"] = send_from
msg["Date"] = formatdate(localtime=True)
msg["To"] = COMMASPACE.join(send_to)
msg.attach(MIMEText(text+"\n"+signature))
for f in files or []:
part = MIMEBase('image', "png")
part.set_payload(f[1].read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="{0}.png"'.format(f[0]))
msg.attach(part)
if ARGS.debug and not ARGS.force_send:
print msg.as_string()
else:
connect_and_send(send_from, send_to, carbon_copy, msg.as_string())