文档章节

python 发送邮件程序

捍卫机密
 捍卫机密
发布于 2016/09/06 16:01
字数 229
阅读 14
收藏 1

能处理字符编码问题,邮件内容无乱码。不过也要看具体环境。

总结自 自己的 自动化运维工具.


# -*- coding:UTF-8 -*-

__author__ = 'weilai'

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

# python 2.3.*: email.Utils email.Encoders
from email.utils import COMMASPACE, formatdate
from email import encoders


def send_mail(server, fromAddr, toAddr, subject, text, files=[]):
    assert type(server) == dict
    assert type(toAddr) == list
    assert type(files) == list

    COMMASPACE == ', '
    msg = MIMEMultipart()
    msg['From'] = fromAddr
    msg['To'] = COMMASPACE.join(toAddr)
    msg['Subject'] = subject
    msg['Date'] = formatdate(localtime=True)
    msg.attach(MIMEText(text, 'plain', 'gb2312'))

    print("处理邮件附件...")
    for file in files:
        part = MIMEBase('application', 'octet-stream', )
        part.set_payload(open(file, 'rb').read())
        encoders.encode_base64(part)
        fileName = os.path.basename(file)
        print("邮件附件【%s】..." % fileName)
        part.add_header('Content-Disposition', 'attachment', filename=(Header(fileName, 'utf-8').encode()))
        #encoders.encode_base64(part)
        msg.attach(part)

    print("登录邮件服务器...")
    smtp = smtplib.SMTP(server['name'], server['port'])
    smtp.ehlo()
    smtp.starttls()
    smtp.ehlo()
    # smtp.set_debuglevel(1)
    smtp.login(server['user'], server['passwd'])
    print("发送邮件...")
    smtp.sendmail(fromAddr, toAddr, msg.as_string())
    smtp.close()
    print("发送结束...")


serv = {"name": "smtp.qq.com", "user": "32574279@qq.com", "passwd": ""}
send_mail(serv, "32574279@qq.com", ["32574279@qq.com"], "新邮件", "新内容", ["F:\\Download\\pic\\xx.jpg"])

 

© 著作权归作者所有

捍卫机密
粉丝 5
博文 132
码字总数 50548
作品 0
成都
程序员
私信 提问
邮件--import--smtplib

-- --import------import smtplib 模块---python邮件---------------------------------------------------------------------------- -- --12.4-------------import------import imaplib 模......

liapple6
2018/10/28
0
0
[python应用案例] 一.BeautifulSoup爬取天气信息并发送至QQ邮箱

前面作者写了很多Python系列文章,包括: Python基础知识系列:Python基础知识学习与提升 Python网络爬虫系列:Python爬虫之Selenium+Phantomjs+CasperJS Python数据分析系列:知识图谱、web...

eastmount
2018/05/03
0
0
python黑科技:让你无所遁形,附源码!

image 懂的人肯定看到标题就明白了,这就是木马程序,从第一句话就看得出来。注册表是个什么东西?这个是黑客、网络安全工程师必须精通的一项技术,所有的木马、病毒基本都是通过电脑注册表实...

猫咪编程
2018/07/20
90
0
通过 Python 和 Gmail 发送邮件

这篇快文介绍了使用Gmail作为您的e-mail服务器,通过Python的内置SMTP库发送电子邮件。它并不复杂,我保证。 下面是如何在Python中登录GMail: 下面是如何在Python中发送邮件: 取决于您对P...

oschina
2012/12/30
2K
3
Python 发送 email 的三种方式

Python发送email的三种方式,分别为使用登录邮件服务器、使用smtp服务、调用sendmail命令来发送三种方法 本文原文自米扑博客:Python 发送 email 的三种方式 Python发送email比较简单,可以通...

sunboy2050
2018/10/18
66
0

没有更多内容

加载失败,请刷新页面

加载更多

ES6

ES6:不改变原理的基础上,让API变得更简单 一、let:代替var用于声明变量 1、var的缺点: (1)声明提前 (2)没有块级作用域 2、let的优点: (1)组织了申明提前 (2)让let所在的块({}),...

wytao1995
今天
3
0
kubernetes 环境搭建 —— minikube

创建集群 minikube start 搭建好 k8s 集群后,可以查看集群的状态以及部署应用。主要用到的是 k8s 的 api,这通常需借助于 kutectl 命令行工具 基本操作 kubectl versionkubectl cluster-i...

lemos
今天
9
0
关于js混淆与反混淆还原操作

使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密,或者混淆js来达到代码保护。 1、为什么...

开源oschina
今天
11
0
用盛金公式解三次方程(ansi c版)

/* cc cubic.c -lm gcc cubic.c -lm Shengjin's Formulas Univariate cubic equation aX ^ 3 + bX ^ 2 + cX + d = 0, (a, b, c, d < R, and a!= 0). Multiple root disc......

wangxuwei
今天
9
0
JBolt开发平台入门(16)- 弹出Dialog显示指定区域的html内容

在JBolt里,有个主从表Demo。 子表中除了普通的table显示,还有其它从表显示形式 比如下方案例:是针对一个升级管理子表中存放版本的changelog富文本信息。 需求是点击左上角的弹出查看按钮,...

山东-小木
今天
46
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部