«Отправитель», который вы указываете в этом случае, является отправителем конверта, который передается на SMTP-сервер.
То, что показывает ваш MUA (почтовый пользовательский агент - т.е. outlook / Thunderbird и т. Д.), Является заголовком «От:».
Обычно, если я использую smtplib, я собираю заголовки отдельно:
headers = "From: %s\nTo: %s\n\n" % (email_from, email_to)
Обычно формат заголовка From обычно "Name" <user@domain>
Вы должны включать заголовок "Message-Id" и заголовок "Reply-To" также во все сообщения. Тем более, что спам-фильтры могут восполнить их отсутствие, так как велика вероятность того, что почта является спамом.
Если у вас есть ваше почтовое тело в теле переменной, просто скомпилируйте общее сообщение:
message = headers + body
Обратите внимание на двойной символ новой строки в конце заголовков. Стоит также отметить, что SMTP-серверы должны разделять заголовки только с новыми строками (т. Е. LF - linfeed). Однако я видел один или два SMTP-сервера Windows, которые используют \ r \ n (т.е. CRLF). Если вы на Windows, YMMV.