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)
Python 3.4 send mail的更多相关文章
- SSIS Send Mail
在SSIS中Send Mail的方法主要有三种,使用Send Mail Task,使用Script Task和使用存储过程msdb.dbo.sp_send_dbmail. 一,使用Send Mail ...
- mailsend - Send mail via SMTP protocol from command line
Introduction mailsend is a simple command line program to send mail via SMTP protocol. I used to sen ...
- 发送邮件的三种方式:Send Mail Message
发送邮件的三种方式: 1.VBS 执行vbs脚本文件的程序为: system32文件下的 NameSpace = "http://schemas.microsoft.com/cdo/conf ...
- How to attach multiple files in the Send Mail Task in SSIS
Let’s say you need to create a SSIS package that creates 2 files and emails the files to someone. Yo ...
- python trojan development 1st —— use python to send mail and caputre the screen then combine them
import smtplib from email.mime.text import MIMEText msg_from='1@qq.com' #发送方邮箱 passwd='bd' #填入发送方邮箱的 ...
- python trojan development 2nd —— use python to send mail and listen to the key board then combine them
请勿用于非法用途!!!!!本人概不负责!!!原创作品,转载说明出处!!!!! from pynput.keyboard import Key,Listener import logging impor ...
- Send Mail using C# code
using System.Net.Mail; public class MailHelp { public static void Send(string subject, string body) ...
- Python的生成器send()方法 & yield_from
生成器对象是一个迭代器.但是它比迭代器对象多了一些方法,它们包括send方法,throw方法和close方法.这些方法,主要是用于外部与生成器对象的交互.本文先介绍send方法. send send方 ...
- golang:send mail using smtp package
go语言发送邮件,可以使用smtp包,两个关键函数: func PlainAuth(identity, username, password, host string) Auth func SendM ...
随机推荐
- Worktile协同特色之二:任务看板管理
什么是看板 看板是一种使用可视化管理的方式,跟踪任务在整个价值流中流经的不同阶段,通常我们会用带贴纸的白板,或是电子卡片墙.具备如下几个特征:1. 流程可视化 把工作拆分成小块,一张卡片写一件任务,再 ...
- Hadoop学习笔记——搭建
一搭建环境列表 操作系统:centos6.5 64位 JDK环境:jdk1.7.0_71 hadoop版本:社区版本2.7.2,hadoop-2.7.2-src.tar.gz 主机名 ip 角色 用户 ...
- Ajax_02之XHR发起异步请求
1.Ajax: AJAX:Asynchronous Javascript And Xml,异步的JS和XML: 同步请求:地址栏输入URL.链接跳转.表单提交-- 异步请求:使用Ajax发起,底层使用 ...
- Python标准库的threading.Thread类(转自别人的翻译)
这个类表示在单独的控制线程中运行的活动.有两种方法可以指定这种活动,给构造函数传递回调对象,或者在子类中重写run() 方法.其他方法(除了构造函数)都不应在子类中被重写.换句话说,在子类中只有__i ...
- 设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。
一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...
- SQL Server 数据库子查询基本语法
一.SQL子查询语句 1.单行子查询 select ename,deptno,sal from emp where deptno=(select deptno ...
- 设置 iOS 应用的图标和名称
Xcode 8.1 设置 iOS 应用的图标和名称的方法: 设置应用图标: 1.在 Resources 中添加图片: 2.在 Icon file 的属性值填写图标文件的名称. 设置应用名: 1.修改 ...
- php的基础
js是前段脚本语言 php是后端脚本语言 一.所建的文件都要存在wap下的www里面 二.所有的文件名都不能包含中文 三.通过输入 localhost/www下的文件名称,可以浏览 四.在DW内新建站 ...
- Android图片缓存之初识Glide
前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架.技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自己的实 ...
- EF循环迭代导致如此严重的性能丢失,你知道?
前言 在工作当中呢,没怎么用到过EF,所以为了遗忘这一部分知识,偶尔会去写写小的demo,偶然机会在EF循环迭代中发现居然影响性能这么严重,当我们在用时或许大概也许可能都曾这样写过,但是你注意到了吗, ...