为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

森栏 2021-11-16 16:45:24
我正在尝试使用 Python 向自己发送短信。为此,我创建了一个 gmail 帐户,打开了安全性较低的应用程序,并运行了以下代码:import smtplibfrom email.mime.text import MIMEText# 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([  '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 本身发送的消息?其他人可以就这个问题提供的任何建议都会非常有帮助!
查看完整描述

1 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

为了弄清楚这一点,我从 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)


查看完整回答
反对 回复 2021-11-16
  • 1 回答
  • 0 关注
  • 168 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信