Python smtplib:如何发送看起来像从电子邮件帐户发送的电子邮件的消息

我正在尝试使用 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

此外,我的短信列表中的“发件人”代理显示为一对随机的带连字符的数字,例如“970-2”或“910-2”。


但是,当我从 gmail 本身向我的电话号码发送消息时,它在我的短信列表中显示为来自“me@gmail.com”,并显示如下:


<b>Subject is here</b>

Body of email is here

有没有办法让我更改msg上面的对象,以使从 Python 发送的消息显示为从 Gmail 本身发送的消息?


其他人可以就这个问题提供的任何建议都会非常有帮助!


森栏
浏览 169回答 1
1回答

德玛西亚99

为了弄清楚这一点,我从 Gmail 发送了一封电子邮件,然后单击已发送邮件旁边的三个点,然后单击“显示原件”,这会显示 Gmail 服务器传送的完整数据包。然后我只是将这些字段添加到我的消息中:import smtplibimport email.mime.multipart# Establish a secure session with gmail's outgoing SMTP server using your gmail accountserver = smtplib.SMTP('smtp.gmail.com', 587)server.set_debuglevel(1)server.ehlo()server.starttls()server.login('me@gmail.com', pw)msg = '\r\n'.join([&nbsp; 'MIME-Version: 1.0',&nbsp; 'Date: Fri, 22 Feb 2019 11:29:27 -0500',&nbsp; 'Message-ID: <CAKyky413ikdYD4-Oq_H_FPF-g__weSFehQNLVuspotupWhJaLA@mail.gmail.com>',&nbsp; 'Subject: wow on what',&nbsp; 'From: Ludwig Wittgenstein <me@gmail.com>',&nbsp; 'To: 5551234567@tmomail.net',&nbsp; 'Content-Type: multipart/alternative; boundary="0000000000003c664305827e1862"',&nbsp; '',&nbsp; '--0000000000003c664305827e1862',&nbsp; 'Content-Type: text/plain; charset="UTF-8"',&nbsp; '',&nbsp; 'weeeee',&nbsp; '',&nbsp; '--0000000000003c664305827e1862',&nbsp; 'Content-Type: text/html; charset="UTF-8"',&nbsp; 'Content-Transfer-Encoding: quoted-printable',&nbsp; '',&nbsp; '<div dir=3D"ltr">here=C2=A0</div>',&nbsp; ''&nbsp; '--0000000000003c664305827e1862--'])# sendmail(from, to, msg)server.sendmail('me@gmail.com', '5551234567@tmomail.net', msg)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python