精华内容
下载资源
问答
  • python 发送带附件邮件
    2020-12-04 08:23:44

    class Carry_files_EmailSender(object):

    def __init__(self):

    self.smtp_host = smtp_host                 # 发送邮件的smtp服务器(QQ邮箱:"smtp.qq.com",163邮箱:"smtp.163.com")

    self.smtp_from_email = smtp_from_email         # 邮件发送者的邮箱

    self.smtp_pwd = smtp_pwd                 # 邮件发送者的邮箱的授权码

    self.smtp_port = smtp_port                 # smtp邮箱的端口,默认是465

    def send_email(self, to_email_list, subject, body,files_part=None):

    '''

    发送邮件

    param to_email_list: 收件人邮箱列表,格式["123@qq.com","123@163.com"]

    param subject: 邮件主题,格式:"邮件主题"

    param body: 邮件内容, 格式:"邮件所说的内容"

    param files_part=None 发送的附件,默认不带附件,格式 r"E:\test.xlsx"

    '''

    msg= MIMEMultipart()

    msg.attach(MIMEText(body, 'plain', 'utf-8'))

    msg["From"] = self.smtp_from_email       # 发件人

    msg["To"] = ",".join(to_email_list)       # 收件人列表,转换成string,用逗号隔开

    msg["Subject"] = subject             # 邮件标题

    #上传指定文件构造附件

    if os.path.exists(files_part):

    filespart=MIMEApplication(open(files_part,'rb').read())

    file_name=files_part.split("\\")[-1]     #获取文件名

    print("file_name=",file_name)

    filespart.add_header("Content-Disposition","attachment",filename=file_name)     #file_name是显示附件的名字,可随便自定义

    msg.attach(filespart)

    else:

    print("加载的附件不存在,发送无附件邮件")

    try:

    SmtpSslClient = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port)           # 实例化一个SMTP_SSL对象

    Loginer = SmtpSslClient.login(self.smtp_from_email, self.smtp_pwd)           # 登录smtp服务器

    print("登录结果:Loginer=", Loginer) # loginRes = (235, b'Authentication successful')

    if Loginer[0] == 235:

    print("登录成功,code=",Loginer[0])

    SmtpSslClient.sendmail(self.smtp_from_email, to_email_list, msg.as_string())     # 发件人,收件人列表,邮件内容

    print("mail has been send successfully,message:", msg.as_string())

    print("发送成功")

    SmtpSslClient.quit()                 # 退出邮箱

    else:

    print("邮件登录失败,发送失败。code=", Loginer[0], "message=", msg.as_string())

    except Exception as e:

    traceback.print_exc()

    print("邮件发送失败,报错信息:", e)

    if __name__=="__main__":

    senders = Carry_files_EmailSender()

    senders.send_email(["123456@qq.com", "123456@163.com"], "测试邮件发送的标题", "这是一个测试邮件发送的内容",r"E:\test\test.txt")

    更多相关内容
  • python发送带附件邮件代码,大家可以看看哟。亲测无问题。
  • python发送带附件邮件

    2021-03-05 20:03:12
    Python SMTP发送邮件SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。python的smtplib提供了一种很方便的途径发送电子邮件。它对...

    Python SMTP发送邮件

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。

    python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。

    Python创建 SMTP 对象语法如下:

    import smtplib

    smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

    参数说明:

    host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名,这个是可选参数。

    port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。

    local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。

    Python SMTP 对象使用 sendmail 方法发送邮件,语法如下:

    SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options]

    参数说明:

    from_addr: 邮件发送者地址。

    to_addrs: 字符串列表,邮件发送地址。

    msg: 发送消息

    开发中我们要发送邮件需要带附件:

    可采用email模块发送电子邮件附件。发送一个未知MIME类型的文件附件其基本思路如下:

    构造MIMEMultipart对象做为根容器

    构造MIMEText对象做为邮件显示内容并附加到根容器

    构造MIMEBase对象做为文件附件内容并附加到根容器

    a. 读入文件内容并格式化

    b. 设置附件头

    设置根容器属性

    得到格式化后的完整文本

    用smtp发送邮件

    实例代码:

    def send_report_email(self,file_path,emails):

    ‘’’’’

    @subject:邮件主题

    @msg:邮件内容

    @toaddrs:收信人的邮箱地址

    @fromaddr:发信人的邮箱地址

    @smtpaddr:smtp服务地址,可以在邮箱看,比如163邮箱为smtp.163.com

    @password:发信人的邮箱密码

    ‘’’

    fromaddr = config.get('fromaddr',"")

    smtpaddr = config.get('smtpaddr',"")

    password = config.get('password',"")

    # toaddrs = ["Dong_Jie@want-want.com"]

    toaddrs = emails

    subject = "售货机结算表"

    msg = "本周期售货机结算表"

    mail_msg = MIMEMultipart()

    if not isinstance(subject, unicode):

    subject = unicode(subject, 'utf-8')

    mail_msg['Subject'] = subject

    mail_msg['From'] = fromaddr

    mail_msg['To'] = ','.join(toaddrs)

    mail_msg.attach(MIMEText(msg, 'html', 'utf-8')) # 构造MIMEBase对象做为文件附件内容并附加到根容器

    data = open(file_path, 'rb') ## 读入文件内容并格式化 [方式1]

    ctype,encoding = mimetypes.guess_type(file_path)

    if ctype is None or encoding is not None:

    ctype = 'application/octet-stream'

    maintype,subtype = ctype.split('/',1)

    file_msg = email.MIMEBase.MIMEBase(maintype, subtype)

    file_msg.set_payload(data.read())

    Encoders.encode_base64(file_msg)#把附件编码

    data.close()

    basename = os.path.basename(file_path)

    file_msg.add_header('Content-Disposition','attachment', filename = basename)#修改邮件头

    mail_msg.attach(file_msg)

    try:

    s = smtplib.SMTP()

    s.connect(smtpaddr) # 连接smtp服务器

    s.ehlo()

    s.starttls()

    s.ehlo

    s.login(fromaddr, password) # 登录邮箱

    s.sendmail(fromaddr, toaddrs, mail_msg.as_string()) # 发送邮件

    s.quit()

    _logger.info("邮件发送成功")

    except Exception, e:

    print "Error: unable to send email"

    _logger.info("邮件发送失败")

    其中需要发送的附件需要进行压缩成zip格式,代码如下:

    def zip_dir(dirname, zipfilename):

    filelist = []

    if os.path.isfile(dirname):

    filelist.append(dirname)

    else:

    for root, dirs, files in os.walk(dirname):

    for name in files:

    filelist.append(os.path.join(root, name))

    zf = zipfile.ZipFile(zipfilename, "w", zipfile.zlib.DEFLATED)

    for tar in filelist:

    arcname = tar[len(dirname):]

    arcname = arcname.encode('GBK') #兼容windows平台,转为gbk,支持简体和繁体

    zf.write(tar, arcname)

    zf.close()

    还需要配置我们自己的邮件发送服务器和发送邮箱,需要配置在odoo.conf中:

    fromaddr = svmaccount@want-want.com

    smtpaddr = 10.0.1.239

    password = P@ssw0rd

    最后手动执行任务测试邮件发送且带有zip附件,邮件发送成功。

    展开全文
  • 主要介绍了python 实现的发送邮件模板,包含Python发送普通邮件带附件图片邮件相关实现技巧,需要的朋友可以参考下
  • Python发送普通邮件的脚本参考:Python发送RMAN备份Log脚本在这篇里主要演示一个Python发送附件邮件的脚本。参考Pytheon文档:Python版本:2.4.3https://www.cndba.cn/Dave/article/417[oracle@rac1 ~]$ cat ...

    Python发送普通邮件的脚本参考:

    Python发送RMAN备份Log脚本

    在这篇里主要演示一个Python发送附件邮件的脚本。

    参考Pytheon文档:

    Python版本:2.4.3

    https://www.cndba.cn/Dave/article/417

    [oracle@rac1 ~]$ cat sendAttEmail.py

    #!/usr/bin/python

    #coding=gbk

    #created by tianlesoftware

    #2011/4/12

    import os

    import sys

    import smtplib

    import mimetypes

    from email.MIMEText import MIMEText

    from email.MIMEImage import MIMEImage

    from email.MIMEMultipart import MIMEMultipart

    #红色标记的修改成自己的信息

    SMTP_SERVER='192.168.1.100'

    EMAIL_USER=user

    EMAIL_PASSWD=pwd

    EMAIL_SUBJECT='This is a test email'

    TO_USERS=['dvd.dba@gmail.com','tianlesoftware@vip.qq.com']

    def mysendmail(fromaddr,toaddrs,subject):

    COMMASPACE=','

    msg = MIMEMultipart()

    msg['From'] = fromaddr

    msg['To'] = COMMASPACE.join(toaddrs)

    msg['Subject'] = subject

    #邮件内容

    https://www.cndba.cn/Dave/article/417

    txt = MIMEText("this is the contents of the email!")

    msg.attach(txt)

    #添加附件https://www.cndba.cn/Dave/article/417

    fileName = r'/home/oracle/awr.html'

    ctype, encoding = mimetypes.guess_type(fileName)

    if ctype is None or encoding is not None:

    ctype = 'application/octet-stream'

    maintype, subtype = ctype.split('/', 1)

    att = MIMEImage((lambda f: (f.read(), f.close()))(open(fileName, 'rb'))[0], _subtype = subtype)

    att.add_header('Content-Disposition', 'attachment', filename = fileName)https://www.cndba.cn/Dave/article/417

    msg.attach(att)

    https://www.cndba.cn/Dave/article/417https://www.cndba.cn/Dave/article/417

    #添加附件,如果有多个附件,就多添加几个

    fileName = r'/home/oracle/awr.html'

    ctype, encoding = mimetypes.guess_type(fileName)

    if ctype is None or encoding is not None:

    ctype = 'application/octet-stream'

    maintype, subtype = ctype.split('/', 1)

    att = MIMEImage((lambda f: (f.read(), f.close()))(open(fileName, 'rb'))[0], _subtype = subtype)

    att.add_header('Content-Disposition', 'attachment', filename = fileName)

    msg.attach(att)

    server.login(EMAIL_USER,EMAIL_PASSWD)

    server.sendmail(fromaddr,toaddrs,msg.as_string())

    server.quit()

    if __name__=='__main__':

    mysendmail(FROM_USER, TO_USERS, EMAIL_SUBJECT)

    #print 'send successful'

    https://www.cndba.cn/Dave/article/417https://www.cndba.cn/Dave/article/417

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    oracle 脚本

    展开全文
  •  1、使用Python发Text 邮件 import smtplib # 发送字符串的邮件 from email.mime.text import MIMEText # 设置服务器所需信息 fromEmailAddr = '发件人邮箱地址' # 邮件发送方邮箱地址 password = 'email password...
  • 主要为大家详细介绍了Python3使用SMTP发送带附件邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要为大家详细介绍了Python3实现带附件的定时发送邮件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 公司项目中需要通过后台发送邮件邮件内容包括图片附件。如果通过PHPmailer发送...但是,在通过python发送邮件,却遇到了乱码的问题。在调试过程中出现了以下现象: 1、中文与英文字母结合出现乱码。 2、回复邮件人的
  • test_Time = str(time.strftime("%Y-%m-%d", time.localtime())) test_file_name = test_Time + "__Report.html" #创建一个带附件的实例 msg = MIMEMultipart() # 如果一封邮件中含有附件,那邮件的中必须定义...

    Python+HTMLTestRunner+Tomcat自动生成测试报告,并以邮件的方式发送

    from email.header import Header
    from email.mime.application import MIMEApplication
    from email.mime.multipart import MIMEMultipart
    
    import HTMLTestRunner
    import sys,smtplib,time,os,unittest
    from email.mime.text import MIMEText
    
    from baigui_testcase import test_products,test_recommend,test_skuprice #导入对应的case
    
    sys.path.append('Macintosh HD/Users/lidada/PycharmProjects/baigui')
    
    now=time.strftime('%Y%m%d %H%M%S')   #定义全局时间变量
    #将多个.py文件一起执行
    suite=unittest.TestSuite()
    suite.addTest(unittest.makeSuite(test_products.TestProduct))  #test_products是.py的文件名,TestProduct是这个文件里的类名
    suite.addTest(unittest.makeSuite(test_recommend.TestRecommend))
    suite.addTest(unittest.makeSuite(test_skuprice.TestSkuprice))
    
    #-----------------查找测试报告目录,找到最新生成的测试报告文件-----------
    
    def newReport(testReport):
    
        lists=os.listdir(testReport) #返回测试报告所在目录下的所有文件列表
        lists2=sorted(lists) #获得按升序排序后的测试报告列表
        file_new=os.path.join(testReport,lists2[-1])   #获取最后一个即最新的测试报告地址
        print (file_new)
        return file_new
    
    #-----------------发送邮件----------------------------
    
    def sendReport(file_new):
    
        #  多个接收邮箱单个收件人的话,直接是receiver = 'XXX@126.com'
        # receiver = 'xxx@163.com' #['XXX@126.com', 'XXX@126.com', 'XXX@doov.com.cn']
        sender = 'xxx@163.com'
        receiver = 'xxx@163.com'
        CC='xxx@163.com'
    
        # 附件的名称
        test_Time = str(time.strftime("%Y-%m-%d", time.localtime()))
        test_file_name = test_Time + "__Report.html"
    
        #创建一个带附件的实例
        msg = MIMEMultipart()  # 如果一封邮件中含有附件,那邮件的中必须定义multipart/mixed类型
    
        # 邮件对象
        msg['Subject']=Header(u'xx接口自动化测试报告')   #    邮件的主题,用到from email.header import Header
        msg['From']=sender#写邮件的人
        msg['To']=receiver   #主要发送给的人   多个收件人时:   ";".join(receiver)
        msg['Cc']=CC #抄送的人
    
        # 正文模块,获取最新的报告做为正文
        # with open(file_new, 'rb') as f:   此写法也可以
        #     msg_raw = f.read()
    
        msg_raw = open(file_new, "rb").read()
        msg_total= MIMEText(msg_raw, 'html','utf-8')  #构造MIMEText对象时,第一个参数就是邮件正文,第二个参数是MIME的subtype
                                                         # 传入'HTML'表示HTML格式, 最后一定要用utf-8编码保证多语言兼容性
        # 添加到MIMEMultipart:
        msg.attach(msg_total)
    
        # 附件模块
        mfile = MIMEApplication(open(file_new, "rb").read())
    
        # 添加附件的头信息
    
        mfile.add_header('Content-Disposition', 'attachment', filename=test_file_name)
    
        # 附件模块添加到MIMEMultipart:
        msg.attach(mfile)
    
        smtp=smtplib.SMTP_SSL('smtp.exmail.qq.com',port=465) #端口smtp
        smtp.login('xxx@163.com', "xxxxxx")#登录邮箱的账号密码
        smtp.sendmail(sender,receiver,msg.as_string()) #参数分别是发送者,接收者,第三个是把上面的发送邮件的内容变成字符串
        smtp.quit()  # 发送完毕后退出smtp
        print ('邮件发送成功,请查收!')
    
     if __name__=='__main__':
        test_report='‎/Users/lidada/Tools/apache-tomcat-9.0.22/webapps/report' #测试报告所在目录
        filePath='/Users/lidada/Tools/apache-tomcat-9.0.22/webapps/report/report'+now+'.html' #通过加入报告生成时间,区分报告名称,否则报告会被覆盖
        fp=open(filePath.encode(),'wb')   #打开文件,以二进制方式将结果写入文件
        runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'xx自动化测试报告',description=u'xx接口测试,接口详情见附件')
        runner.run(suite)   #执行测试,调用测试套件返回结果
    
        fp.close()   #关闭文件,打开文件后一定要关闭文件,否则会占用资源
        sendReport(filePath)  #发送最新的测试报告
    
    展开全文
  • Python 简单发送邮件 / 发送带各种附件邮件

    万次阅读 多人点赞 2018-06-04 13:55:05
    写个自动发送邮件python脚本。 用脚本发送邮件思路是:登陆邮箱-->写邮件-->发送邮件 发送邮箱设置: 得开通自己邮箱的 SMTP 功能,具体可百度。 以163网易邮箱为例: 设置 --> POP3/SMTP/IMAP --&...
  • 主要为大家详细介绍了python smtplib发送带附件邮件小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header ...#用邮箱实现带附件邮件发送 class AttachmentEmailSender(object): def __init
  • # smtplib这个模块是管发邮件 from email.mime.text import MIMEText # 构造邮件内容 from email.mime.multipart import MIMEMultipart import re import os from bs4 import Beauti...
  • 主要为大家详细介绍了python SMTP实现发送带附件电子邮件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • python3使用smtpib利用第三方smtp服务器发送带附件邮件
  • 主要为大家详细介绍了python3通过qq邮箱发送邮件以及附件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • import smtplib #发送邮件模块from email.mime.textimport MIMEText #定义邮件内容from email.mime.multipartimport MIMEMultipart #用于传送附件#发送邮箱服务器smtpserver=‘smtp.163.com‘#发送邮箱用户名密码...
  • 复制代码 代码如下:def sendmail(login={},mail={}): ”’\ @param login login[‘user’] login[‘passwd’] @param mail mail[‘to_addr’] mail[‘subject’] mail[‘content’] mail[‘attach’] ”’ from...
  • 本篇文章主要介绍了Python实现Smtplib发送带有各种附件邮件实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 本篇文章主要介绍了Python中Django发送带图片和附件邮件 ,非常具有实用价值,需要的朋友可以参考下。
  • 具体代码如下:(相关推荐:python基础教程)fromdjango.templateimportloaderfromemail.mime.multipartimportMIMEMultipartfromemail.mime.textimportMIMETextfromemail....
  • time,os,zipfile,mimetypesclassSendEmail():"""发送邮件""" defsend_eamil(self):try: message=self.data() smtpObj=smtplib.SMTP_SSL(email['host'],465) smtpObj.login(email['username'],email['password']) ...
  • 可以使用Python的email模块来实现附件邮件发送。 SMTP (Simple Mail Transfer Protocol)邮件传送代理 (Mail Transfer Agent,MTA) 程序使用SMTP协议来发送电邮到接收者的邮件服务器。SMTP协议只能用来发送...
  • 使用适当的MIME类型发送多部分电子邮件。所以可能是这样(我测试过):import smtplibimport mimetypesfrom email.mime.multipart import MIMEMultipartfrom email import encodersfrom email.message import Message...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,780
精华内容 4,312
关键字:

python发送带附件的邮件