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) 

  

posted @ 2016-12-09 11:18  ®Geovin Du Dream Park™  阅读(401)  评论(0编辑  收藏  举报