您的位置:首页 > 运维架构 > Linux

python (18)在linux中如何实现定时发送邮件到指定邮箱,监测任务

2016-06-27 18:50 1011 查看
最近要用到,定时发送邮件功能:

如何定时,当然要用到linux中crontab了

如下的代码能够定时发送邮件

#!/usr/bin/env python
#coding=utf-8
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email import Encoders
import time
mail_body='hello, this is the mail content'
mail_from=''#发件人的邮箱
mail_to=['']#收件人邮箱
# 构造MIMEMultipart对象做为根容器
msg=MIMEMultipart()

# 构造MIMEText对象做为邮件显示内容并附加到根容器
body=MIMEText(mail_body)
msg.attach(body)

# 构造MIMEBase对象做为文件附件内容并附加到根容器
# 等同于如下3行
#contype = 'application/octet-stream'
#maintype, subtype = contype.split('/', 1)
#part = MIMEBase(maintype, subtype)
part = MIMEBase('application', 'octet-stream')

# 读入文件内容并格式化,此处文件为当前目录下,也可指定目录 例如:open(r'/tmp/123.txt','rb')
part.set_payload(open('123.txt','rb').read())
Encoders.encode_base64(part)
## 设置附件头
part.add_header('Content-Disposition', 'attachment; filename="herb.zip"')
msg.attach(part)

# 设置根容器属性
msg['Subject']='this is the title'
msg['From']=mail_from
msg['To']=';'.join(mail_to)
msg['date']=time.strftime('%a, %d %b %Y %H:%M:%S %z')
#如上得到了格式化后的完整文本msg.as_string()
#用smtp发送邮件
smtp=smtplib.SMTP()
smtp.connect('')#服务,如果是163的邮箱,就填上smtp.163.com
smtp.login('发件的邮箱','发件的密码')
smtp.sendmail(mail_from,mail_to,msg.as_string())
smtp.quit()
print 'ok'


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: