zoukankan      html  css  js  c++  java
  • Python 3.4 send mail

    #coding=utf-8
    #Python 3.4  https://docs.python.org/3.4/library/
    #IDE:Visual Studio 2015  Window10
    import atexit
    import os
    import unicodedata
    import sys
    import time
    import unicodedata
    import winsound
    import code
    import codecs
    import math
    import csv
    import base64
    import re
    import smtplib 
    from email.mime.text import MIMEText 
    from email.mime.multipart import MIMEMultipart
    from email.header import Header  
    from email.mime.image import MIMEImage
    from email.mime.base import MIMEBase  
    from email.utils import COMMASPACE, formatdate  
    import email
    import os.path  
    import sys   
    import mimetypes   
    import configparser 
    import string  
    
    #https://docs.python.org/3.4/library/email.html
    #https://docs.python.org/3/library/email-examples.html
    
    inifile='F:/Python/055.JPG'  
    #config=ConfigParser.ConfigParser()  
    #config.read(inifile)  
    #os.remove(inifile) #移除文件 
    subject=Header("缔友计算机有限公司销售报告","utf-8")  #邮件标题
    ReplyToName="geovindu@dusystem.com"  
    ReplyToMail="geovindu@dusystem.com"  
    To="463588883@qq.com" 
    bcc="geovindu@163.com"; 
    cc="geovindu@jw28.com";
    COMMASPACE = ', ';
    file_name=inifile #"file_name"  
    From = "%s<geovindu@dusystem.com>" % Header("缔友计算机信息有公司涂聚文","utf-8")  #发件人和姓名
    server = smtplib.SMTP("mail.dusystem.com",25)  
    server.login("geovindu@dusystem.com","888") #仅smtp服务器需要验证时  
      
    # 构造MIMEMultipart对象做为根容器  
    main_msg =  MIMEMultipart("alternative");  #alternative   related  2.x版本的email.MIMEMultipart.MIMEMultipart()
    # 构造MIMEText对象做为邮件显示内容并附加到根容器  
    text_msg =MIMEText("xxx帮你转发的邮件", _subtype='html',_charset="utf-8")  #邮件内容  2.x版本的 email.MIMEText.MIMEText
    main_msg.attach(text_msg)  
    
    # 构造MIMEBase对象做为文件附件内容并附加到根容器  
    
    #图片未显示,附件不同
    #fp = open(file_name, 'rb')    
    #msgImage = MIMEImage(fp.read())    
    #fp.close()        
    #msgImage.add_header('Content-ID', '<image1>')    
    #main_msg.attach(msgImage)  
    
       
    ## 设置附件头  
    #basename = os.path.basename(file_name)  
    #file_msg.add_header('Content-Disposition','attachment', filename = basename)#修改邮件头  
    file_msg = MIMEText(open(file_name, 'rb').read(), 'base64', 'utf-8')    #发文件
    file_msg["Content-Type"] = 'application/octet-stream'    
    file_msg["Content-Disposition"] = 'attachment; filename="055.JPG"' 
    
    main_msg.attach(file_msg)  
    # 设置根容器属性  
    main_msg['From'] = From  
    if ReplyToMail!='none':  
        main_msg['Reply-to'] = "%s<%s>" % (Header(ReplyToName,"utf-8"),ReplyToMail)  
    main_msg['To'] = To;  
    main_msg['Subject'] = subject;  
    main_msg['Cc']=cc;
    main_msg['Bcc'] = bcc;  #这无效
    main_msg['Date'] =formatdate(localtime=True) 
    # 得到格式化后的完整文本  
    fullText = main_msg.as_string()  
    # 用smtp发送邮件  
    try:  
        server.sendmail(From, To.split(';'), fullText)  
    finally:  
        server.quit()  
        #os.remove(file_name)  
    print("发送邮件成功");
    

      上发图片

    下为发文件

    #coding=utf-8
    #Python 3.4  https://docs.python.org/3.4/library/
    #IDE:Visual Studio 2015  Window10
    import atexit #类库
    import os
    import unicodedata
    import sys
    import time
    import unicodedata
    import winsound
    import code
    import codecs
    import math
    import csv
    import base64
    import re
    import smtplib 
    from email.mime.text import MIMEText 
    from email.mime.multipart import MIMEMultipart
    from email.header import Header  
    from email.mime.image import MIMEImage
    from email.mime.base import MIMEBase  
    from email.encoders import encode_base64
    from email.mime.application import MIMEApplication 
    from email.utils import COMMASPACE, formatdate  
    import email
    import os.path  
    import sys   
    import mimetypes   
    import configparser 
    import string  
    import mimetypes
    import base64;
    
    #https://docs.python.org/3.4/library/email.html
    #https://docs.python.org/3/library/email-examples.html
    
    inifile=u'F:/Python/工应用文写作.doc'  
    #config=ConfigParser.ConfigParser()  
    #config.read(inifile)  
    #os.remove(inifile) #移除文件 
    subject=Header("缔友计算机有限公司销售报告","utf-8")  #邮件标题
    ReplyToName="geovindu@dusystem.com"  
    ReplyToMail="geovindu@dusystem.com"  
    To="463588883@qq.com" 
    bcc="geovindu@163.com"; 
    cc="geovindu@jw28.com";
    COMMASPACE = ', ';
    file_name=inifile #"file_name"  
    From = "%s<geovindu@dusystem.com>" % Header("缔友计算机信息有公司涂聚文","utf-8")  #发件人和姓名
    server = smtplib.SMTP("mail.dusystem.com",25)  
    server.login("geovindu@dusystem.com","888") #仅smtp服务器需要验证时  
      
    # 构造MIMEMultipart对象做为根容器  
    main_msg =  MIMEMultipart("alternative");  #alternative   related  2.x版本的email.MIMEMultipart.MIMEMultipart()
    # 构造MIMEText对象做为邮件显示内容并附加到根容器  
    text_msg =MIMEText("请你及阅完文档,提出建议", _subtype='html',_charset="utf-8")  #邮件内容  2.x版本的 email.MIMEText.MIMEText
    main_msg.attach(text_msg)  
    
    # 构造MIMEBase对象做为文件附件内容并附加到根容器  
    
    #图片未显示,附件不同
    #fp = open(file_name, 'rb')    
    #msgImage = MIMEImage(fp.read())    
    #fp.close()        
    #msgImage.add_header('Content-ID', '<image1>')    
    #main_msg.attach(msgImage)  
    
       
    ## 设置附件头  
    #basename = os.path.basename(file_name)  
    #file_msg.add_header('Content-Disposition','attachment', filename = basename)#修改邮件头  
    #图片
    #file_image="F:/Python/055.jpg";
    #file_msg = MIMEText(open(file_image, 'rb').read(), 'base64', 'utf-8')    #发完文件不见了
    #file_msg["Content-Type"] = 'application/octet-stream'     # 图片(application/octet-stream)可以,但WORD不行
    #file_msg["Content-Disposition"] = 'attachment; filename="055.jpg"' 
    #1 可以文件名乱码
    #contentType, encoding = mimetypes.guess_type(file_name)
    #mainType, subType = contentType.split('/', 1)  
    #file = open(file_name, 'rb')
    #attachment = MIMEBase(mainType, subType)
    #attachment.set_payload(file.read())  
    #encode_base64(attachment)  
    #file.close()   
    #basename = os.path.basename(file_name);
    #attachment.add_header('Content-Disposition', 'attachment',filename=basename)
    #attachment.add_header('Content-Disposition', 'attachment',filename=os.path.basename(file_name))  #file_name 
    
    #2中文件名乱码 
    #file_msg = MIMEApplication(open(file_name, 'rb').read())    #发文件  
    #file_msg.add_header('Content-Disposition', 'attachment', filename="应用文写作.doc")  
    #main_msg.attach(file_msg)  #file_msg
    
    #3注意:指定att的编码
    basename = os.path.basename(file_name) 
    att = MIMEText(open(file_name, 'rb').read(), 'base64', 'utf-8')  
    att["Content-Type"] = 'application/octet-stream' 
    att["Content-Disposition"] = 'attachment; filename=%s' % basename.encode("utf-8") 
    main_msg.attach(att)  
    
    # 设置根容器属性  
    main_msg['From'] = From  
    if ReplyToMail!='none':  
        main_msg['Reply-to'] = "%s<%s>" % (Header(ReplyToName,"utf-8"),ReplyToMail)  
    main_msg['To'] = To;  
    main_msg['Subject'] = subject;  
    main_msg['Cc']=cc;
    main_msg['Bcc'] = bcc;  #这无效
    main_msg['Date'] =formatdate(localtime=True) 
    # 得到格式化后的完整文本  
    fullText = main_msg.as_string()  
    # 用smtp发送邮件  
    try:  
        server.sendmail(From, To.split(';'), fullText)  
    finally:  
        server.quit()  
        #os.remove(file_name)  移除文件
    print("发送邮件成功");
    

      

    #4.中文无乱码
    file_name=u'F:/Python/应用文写作.doc'
    urlfilename="应用文写作.doc"
    att = MIMEBase('application', 'octet-stream')  
    att.set_payload(open(file_name, 'rb').read())  
    att.add_header('Content-Disposition', 'attachment', filename=('gbk', '', urlfilename) )  #gbk 收件时,名称不乱码。
    encode_base64(att) 
    main_msg.attach(att) 
    

      

  • 相关阅读:
    NTP时钟服务器(卫星授时)技术让网络时间同步不再难
    视频监控系统为何需要GPS北斗授时服务器?
    如何选购GPS北斗卫星时钟同步装置?市场均价多少?
    Orange'S学习笔记(一)
    Oracle 11g中文版高清视频教程
    新书推荐:Orange'S:一个操作系统的实现
    引导扇区汇编代码解释
    灰度图转伪彩色图代码
    Visual Odometry For GPSDenied Flight And Mapping Using A Kinect
    [原创]日行一善,命运在不知不觉中改变
  • 原文地址:https://www.cnblogs.com/geovindu/p/6148755.html
Copyright © 2011-2022 走看看