Python未解析的引用导入MIMEMultipart

时间:2016-05-01 14:31:25

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

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

在我的import语句中,我收到错误:

unresolved reference MIMEMultipart
unresolved reference MIMEText
unresolved reference MIMEBase

我的导入声明是这样写的:

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

我是否需要安装任何软件包?

我的完整代码段是:

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

2 个答案:

答案 0 :(得分:3)

电子邮件包在某些时候被重构,Mime支持现在位于email.mime包中。

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

答案 1 :(得分:3)

使用python 3.6:

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