#python #email #smtp #smtplib
#python #Адрес электронной почты #smtp #smtplib
Вопрос:
Я получаю странное отображение поля From в электронном письме smtp.Отображение выглядит так;
от: test@gmail.com Кому: test@gmail.com , Тема: Сообщение test@gmail.com чтобы:
поле «кому» пустое, но другой получатель «кому», т.е. test1@gmail.com успешно получил электронное письмо. Ниже приведен мой код.
import smtplib
def SendEmailScenario1():
gmail_user = "test@gmail.com"
gmail_password = '******'
sent_from = gmail_user
to = ["test1@gmail.com"]
subject = 'Message'
body = "Hi There! Done1"
email_text = """
From: %s
To: %s
Subject: %s
%s
""" % (sent_from, ", ".join(to), subject, body)
try:
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.ehlo()
server.login(gmail_user, gmail_password)
server.sendmail(sent_from, to, email_text)
server.close()
print ('Email sent!')
except:
print ('Something went wrong...')
def SendEmailScenario2():
gmail_user = "test@gmail.com"
gmail_password = '******'
sent_from = gmail_user
to = ["test1@gmail.com"]
subject = 'Message'
body = "Hi There! Done 2"
email_text = """
From: %s
To: %s
Subject: %s
%s
""" % (sent_from, ", ".join(to), subject, body)
try:
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.ehlo()
server.login(gmail_user, gmail_password)
server.sendmail(sent_from, to, email_text)
server.close()
print ('Email sent!')
except:
print ('Something went wrong...')
SendEmailScenario1()
SendEmailScenario2()
Как перевести его в обычный режим без использования MIMEText, MimeMultipart
Ответ №1:
RFC822 указывает, что заголовок должен заканчиваться 'rn'
:
field = field-name «:» [field-body ] CRLF
Кроме того, заголовки должны быть отделены от тела пустым 'rn'
:
[Тело] отделено от заголовков нулевой строкой (т. Е. строкой, перед которой нет ничего, предшествующего CRLF)
Итак, сообщение должно быть построено следующим образом:
headers = "From: %srnTo: %srnSubject: %srnrn"
email_text = headers body
Смотрите также Пример в документах smtplib.