代码语言
.
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
/
1109
#!/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()
试试其它关键字
发送邮件
同语言下
.
比较两个图片的相似度
.
过urllib2获取带有中文参数的url内容
.
不下载获取远程图片的宽度和高度及文件大小
.
通过qrcode库生成二维码
.
通过httplib发送GET和POST请求
.
Django下解决小文件下载
.
遍历windows的所有窗口并输出窗口标题
.
根据窗口标题调用窗口
.
python 抓取搜狗指定公众号
.
pandas读取指定列
可能有用的
.
实现测量程序运行时间及cpu使用时间
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
新凡
贡献的其它代码
(
10
)
.
微信公众号去除分享菜单
.
清除IE10下input的叉叉(X)和密码输入框的眼睛图标
.
只能输入汉字
.
html横向导入word
.
颜色选择框
.
使用smtp库发送邮件
.
用于给页面中添加事件
.
Nginx反向代理-根据域名反向代理
.
修改input的type属性问题
.
清除radio单选框外边距
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3