У меня есть скрипт Python, который отправляет электронные письма. Письма отправляются без проблем.
Однако, когда я получаю письма и открываю их, в поле «Кому:» не отображаются получатели. Это просто пусто. Я хочу показать всех получателей. И поскольку я не использую в своем скрипте какую-либо конфигурацию «bcc», я сбит с толку тем, как это могло быть.
Вот код, который я использую:
#!/usr/bin/env python
you = [ "[email protected]", "[email protected]" ]
for eachrecord in fformatErrMessage:
# Preparing all variables #
msg = MIMEMultipart()
msg['Subject'] = subjectMsg
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
msg.attach(part1)
msg.attach(part2)
s = smtplib.SMTP('localhost')
s.sendmail(me, you, msg.as_string())
s.quit()
Я попытался заменить вас на:
you = "[email protected]"
думал, может быть, проблема в списке, но это не сработало.
При отправке писем серверы не смотрят на поле «Кому:». Вместо этого у серверов электронной почты есть отдельный способ передачи адресов получателей, иногда называемый «конвертом», который они используют для маршрутизации и доставки почты. Клиент никогда не получает этот конверт, вместо этого он использует поле «Кому:» в заголовках сообщений.
Вызов sendmail() просто устанавливает адреса конверта SMTP. Если вы хотите, чтобы поле To: отображалось в самой почте, вы должны установить соответствующий заголовок:
msg['To'] = "[email protected]"
Вот, кстати, как работает BCC: адреса на конверте просто не повторяются в заголовках сообщений.
пожалуйста, покажите нам пример электронного письма, отправленного без адреса: Кроме того, проверьте фактический адрес электронной почты при отправке электронного письма. В моем почтовом домене мы поместили <[email protected]>. Обратите внимание на ключевое слово exch.