网站首页
网站导航
Ctrl+D收藏
首 页
代码段
源码包
文档库
工具箱
代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Python
】
使用smtp库发送邮件
作者:
新凡
/ 发布于
2016-8-12
/
352
#!/usr/bin/env python # coding:utf-8 import email import smtplib class Mailer: def __init__(self, smtp_host, smtp_user, smtp_passwd, smtp_port = 25) : self.smtp_host = smtp_host self.smtp_user = smtp_user self.smtp_passwd = smtp_passwd self.smtp_port = smtp_port self.mail = email.MIMEMultipart.MIMEMultipart('related') self.alter = email.MIMEMultipart.MIMEMultipart('alternative') self.mail.attach(self.alter) self.attachments = [] def mailfrom(self, mail_from) : self._from = mail_from self.mail['from'] = mail_from def mailto(self, mail_to) : """ mail_to : comma separated emails """ self._to = mail_to if type(mail_to) == list: self.mail['to'] = ','.join(mail_to) elif type(mail_to) == str : self.mail['to'] = mail_to else : raise Exception('invalid mail to') def mailsubject(self, mail_subject) : self.mail['subject'] = mail_subject def text_body(self, body, encoding = 'utf-8') : self.alter.attach(email.MIMEText.MIMEText(body, 'plain', encoding)) def html_body(self, body, encoding = 'utf-8') : self.alter.attach(email.MIMEText.MIMEText(body, 'html', encoding)) def addattach(self, filepath, mime_type = 'octect-stream', rename = None) : import os f = open(filepath, 'rb') filecontent = f.read() f.close() mb = email.MIMEBase.MIMEBase('application', mime_type) mb.set_payload(filecontent) email.Encoders.encode_base64(mb) fn = os.path.basename(filepath) mb.add_header('Content-Disposition', 'attachment', filename = rename or fn) self.mail.attach(mb) def send(self): self.mail['Date'] = email.Utils.formatdate( ) smtp = False try: smtp = smtplib.SMTP() smtp.set_debuglevel(1) smtp.connect(self.smtp_host, self.smtp_port) smtp.login(self.smtp_user, self.smtp_passwd) smtp.sendmail(self._from, self._to, self.mail.as_string()) return True except Exception, e: import traceback print traceback.format_exc() return False #finally : smtp and smtp.quit() def get_mailer() : mailer = Mailer(, , )#smtp,user,pwd mailer.mailfrom('')#from email return mailer if __name__ == '__main__': mailer = get_mailer() import sys #mailto = sys.argv[1] #subject = sys.argv[2] #body = sys.stdin.read() #mailer.mailto(mailto) #mailer.mailsubject(subject) #mailer.html_body(body) #if len(sys.argv) == 4 : # mailer.addattach(sys.argv[3]) #mailer.send() mailto = 'so@gmail.com' subject = 'Daily Report' body = 'Hello' mailer.mailto(mailto) mailer.mailsubject(subject) mailer.html_body(body) #if len(sys.argv) == 4 : mailer.addattach('318110214911a041c0ed077f0.xls') mailer.send()
评论列表
本站所提供的代码,版权归原作者所有,若有侵犯作者版权,请与我们联系,我们将立即删除或修改。谢谢!
本站所有代码发布及提供者。
试试其它关键字
发送邮件
同语言下
.
python 抓取搜狗指定公众号
.
pandas读取指定列
.
操作 SparkSQL (spark版本2.3) JOIN使用临时表版本
.
将Arcgis要素类的属性表输出为csv文件
.
反射工具类
.
目标检测图像增强操作
.
淘宝商品简单爬虫
.
A*算法实现五子棋人机对弈
.
查CPU使用率比较高的线程小脚本
.
淘宝式的爬虫爬取 带断点续传
可能有用的
.
纯CSS的工具提示效果
.
在SpringMvc拦截器或者request中取得前端传递过来的Js
.
创建只读权限oracle账户
.
获取准确的操作系统名称的Java工具类
.
金额转换工具 MoneyUtil
.
数组操作ArrayUtil
.
数字计算工具 NumberUtil
.
图片工具类完成图片的截取和任意缩放
.
敏感字符串处理工具类
.
连接FTP、删除、下载文件的工具类
新凡
贡献的其它代码
(
9
)
.
清除IE10下input的叉叉(X)和密码输入框的眼睛图标
.
只能输入汉字
.
html横向导入word
.
颜色选择框
.
使用smtp库发送邮件
.
用于给页面中添加事件
.
Nginx反向代理-根据域名反向代理
.
修改input的type属性问题
.
清除radio单选框外边距
地图
本站
我们
服务
版权
联系
回馈
博客