【问题标题】:Python unresolved reference import MIMEMultipartPython 未解析的参考导入 MIMEMultipart
【发布时间】:2016-08-26 08:26:54
【问题描述】:

我正在 Pycharm 中编写一些代码,以便在带有附件的电子邮件中发送我的 Selenium 测试结果报告。

在我的导入语句中,我收到了错误:

unresolved reference MIMEMultipart
unresolved reference MIMEText
unresolved reference MIMEBase

我的导入语句是这样写的:

from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase

我需要安装任何软件包吗?

我的完整代码sn-p是:

from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase

class Email(BasePage):


    def send_email(self):
        import smtplib


        from email import encoders

        fromaddr = "YOUR EMAIL"
        toaddr = "EMAIL ADDRESS YOU SEND TO"

        msg = MIMEMultipart()

        msg['From'] = fromaddr
        msg['To'] = toaddr
        msg['Subject'] = "SUBJECT OF THE EMAIL"

        body = "TEXT YOU WANT TO SEND"

        msg.attach(MIMEText(body, 'plain'))

        filename = "NAME OF THE FILE WITH ITS EXTENSION"
        attachment = open("PATH OF THE FILE", "rb")

        part = MIMEBase('application', 'octet-stream')
        part.set_payload((attachment).read())
        encoders.encode_base64(part)
        part.add_header('Content-Disposition', "attachment; filename= %s" % filename)

        msg.attach(part)

        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()

【问题讨论】:

    标签: python python-2.7 selenium selenium-webdriver pycharm


    【解决方案1】:

    使用 python 3.6:

    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.mime.base import MIMEBase
    

    【讨论】:

      【解决方案2】:

      电子邮件包在某个时候进行了重构,Mime 支持现在位于 email.mime 包中。

      https://docs.python.org/2/library/email.html

      【讨论】:

      • 就是这样,email下没有MIMEMultipart包;只有email.mime.multipart 存在。 OP 可以删除包名称,因为 from email import MIMEMultipart 确实有效。
      • 我现在已经添加了这些导入语句。从 email.mime.multipart 导入 MIMEMultipart 从 email.mime.base 导入 MIMEBase 从 email.mime.text 导入 MIMEText
      • 对于以下 import 语句 from email.mime.multipart import MIMEMultipart 我收到错误 No module named mime.multipart
      猜你喜欢
      • 2021-04-28
      • 2019-04-04
      • 1970-01-01
      • 2021-12-29
      • 2019-01-14
      • 2019-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多