使用 python 将邮件发送给所需的收件人

Posted

技术标签:

【中文标题】使用 python 将邮件发送给所需的收件人【英文标题】:Send mail using python to required recipients 【发布时间】:2019-04-30 00:23:03 【问题描述】:

我正在尝试将电子邮件从我的官方 ID 自动发送到另一个官方 ID。为此,我使用了以下 python 脚本。

import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText

fromaddr = "<SENDER MAIL ID>"
toaddr = "<RECIPIENT MAIL ID>"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "SUBJECT OF THE MAIL"

body = "Robot Uprising, We are coming for you"
msg.attach(MIMEText(body, 'plain'))

server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr, "YOUR PASSWORD")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()

在执行此操作时,我面临以下问题:

Traceback (most recent call last):
  File "mailsendtest.py", line 2, in <module>
    from email.MIMEMultipart import MIMEMultipart
ImportError: No module named MIMEMultipart

我是python的初学者。请提供输入。谢谢!

【问题讨论】:

在 Python 3 中是 from email.mime.multipart import MIMEMultipart 【参考方案1】:

假设您使用的是 Python3,我发现您的 imports 存在两个问题。

    from email.MIMEMultipart import MIMEMultipart更改为from email.mime.multipart import MIMEMultipart

    from email.MIMEText import MIMEText更改为from email.mime.text import MIMEText

如果这些库不起作用,请确保您已安装这些库。

【讨论】:

谢谢,这解决了问题,我现在面临一个新问题。 Traceback(最近一次通话最后):文件“mailsendtest.py”,第 15 行,在 server = smtplib.SMTP('smtp.gmail.com', 587) 文件“C: \Integration\python\pyt\lib\smtplib.py",第 259 行,在 init (code, msg) = self.connect(host, port) File "C:\Integration\python\pyt \lib\smtplib.py”,第 319 行,在连接 self.sock = self._get_socket(host, port, self.timeout) 文件“C:\Integration\python\pyt\lib\smtplib.py”中,第 294 行,在 _get_socket 返回 socket.create_connection((host, port), timeout) socket.gaierror: [Errno 11001] getaddrinfo failed 这与您正在使用的 smtp 库有关。

以上是关于使用 python 将邮件发送给所需的收件人的主要内容,如果未能解决你的问题,请参考以下文章

指定的字符串不是电子邮件地址所需的格式。发送电子邮件时

python发邮件

Python如何一行代码自动发邮件

Outlook 365 EWS 流式通知 |如何计算发送和接收消息所需的时间?

48. Python 发邮件

python3自定义邮件发件人名称,网页不正常,手机端正常