SMTP - это «древний» протокол, и я уверен, что сейчас мы разработали бы множество функций совершенно по-другому.
Что касается вашего вопроса, я хотел бы остановиться на двух моментах:
1. Сообщение и его конверт
Я не буду go вдаваться в детали, есть много прекрасных уроков. Вам необходимо поместить адреса в заголовки сообщений, так как здесь разрешены строки и комментарии, разделенные запятыми (обычно полные имена или псевдонимы получателей). Пример:
msg['To'] = '"John Doe" <jdoe@example.com>, "Guess Who" <xy@example.com>'
, и вам нужно указать серверу, кому вы хотите отправить это сообщение. Этот второй список адресов является еще одним списком. Адреса там должны быть без каких-либо комментариев (имен).
to_addrs = ["jdoe@example.com", "xy@example.com"]
К счастью, вы обычно хотите отправить адресатам, перечисленным в сообщении. В этом случае вы можете указать smtplib
извлечь адреса из сообщения. См. send_message .
2. возвращаемое значение
Когда отправляется сообщение с несколькими адресами, результатом может быть не только успех или неудача, но также частичный успех, когда некоторые адреса приняты, а некоторые отклонены. Снова, смотрите документы для деталей.