Python smtplib: как отправлять сообщения, похожие на электронные письма, отправленные с учетной записи электронной почты - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь отправлять себе текстовые сообщения, используя Python.Для этого я создал учетную запись Gmail, включил менее безопасные приложения и запустил следующий код:

import smtplib
from email.mime.text import MIMEText

# Establish a secure session with gmail's outgoing SMTP server using your gmail account
server = smtplib.SMTP('smtp.gmail.com', 587)
server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.login('me@gmail.com', 'pw!' )

msg = '\r\n'.join([
  'From: me@gmail.com',
  'To: 5551234567@tmomail.net',
  'Subject: Cats',
  '',
  'on wheels'
])

# sendmail(from, to, msg)
server.sendmail('me@gmail.com', '5551234567@tmomail.net', msg)

Это действительно отправляет текстовое сообщение на мой телефон, носообщение отображается следующим образом:

me@gmail.com / Cats / on wheels

Кроме того, агент "from" в моем списке текстовых сообщений отображается в виде случайной пары чисел, таких как "970-2" или "910-2".

Однако, когда я отправляю сообщение из самого gmail на мой номер телефона, оно отображается в моем списке текстовых сообщений как "me@gmail.com" и отображается так:

<b>Subject is here</b>
Body of email is here

Есть ли способ изменить мой msg объект выше, чтобы сделать так, чтобы сообщения, отправляемые с Python, отображались так же, как и сообщения из самой Gmail?

Любые предложения, которые могут предложить другие по этому вопросу, были бы чрезвычайно полезны!

1 Ответ

0 голосов
/ 22 февраля 2019

Чтобы выяснить это, я отправил электронное письмо из Gmail, затем нажал на три точки рядом с отправленным сообщением и нажал «Показать оригинал», в котором отображался полный пакет данных, доставленных сервером Gmail.Затем я просто добавил эти поля в свое сообщение:

import smtplib
import email.mime.multipart

# Establish a secure session with gmail's outgoing SMTP server using your gmail account
server = smtplib.SMTP('smtp.gmail.com', 587)
server.set_debuglevel(1)
server.ehlo()
server.starttls()
server.login('me@gmail.com', pw)

msg = '\r\n'.join([
  'MIME-Version: 1.0',
  'Date: Fri, 22 Feb 2019 11:29:27 -0500',
  'Message-ID: <CAKyky413ikdYD4-Oq_H_FPF-g__weSFehQNLVuspotupWhJaLA@mail.gmail.com>',
  'Subject: wow on what',
  'From: Ludwig Wittgenstein <me@gmail.com>',
  'To: 5551234567@tmomail.net',
  'Content-Type: multipart/alternative; boundary="0000000000003c664305827e1862"',
  '',
  '--0000000000003c664305827e1862',
  'Content-Type: text/plain; charset="UTF-8"',
  '',
  'weeeee',
  '',
  '--0000000000003c664305827e1862',
  'Content-Type: text/html; charset="UTF-8"',
  'Content-Transfer-Encoding: quoted-printable',
  '',
  '<div dir=3D"ltr">here=C2=A0</div>',
  ''
  '--0000000000003c664305827e1862--'
])

# sendmail(from, to, msg)
server.sendmail('me@gmail.com', '5551234567@tmomail.net', msg)
...