python (18)在linux中如何实现定时发送邮件
最近要用到,定时发送邮件功能:
如何定时,当然要用到linux中crontab了
如下的代码能够定时发送邮件
- #!/usr/bin/env python
- # -*- coding=utf-8 -*-
- import smtplib
- from email.mime.text import MIMEText
- import threading
- import time, datetime
- mailto_list=["lovychen@126.com"] #里面是对方的邮箱
- #-----------QQ邮箱发送设置----------------------
- mail_server="smtp.qq.com"#以qq邮箱为例子,里面是QQ邮箱的服务,换成其他邮箱需要更改服务
- mail_user=""#这是QQ邮箱的账号
- mail_pass=""#如果是其他的可以直接填上密码,如果用qq之类的,或者邮箱未开服务,会提醒你打开下面的链接
- #QQ邮箱需要去官方打开服务:http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256
- def send_mail(to_list, sub, content):
- msg = MIMEText(content,'plain','utf-8')
- msg["Accept-Language"]="zh-CN"
- msg["Accept-Charset"]="ISO-8859-1,utf-8"
- msg['Subject'] = sub
- msg['From'] = mail_user
- msg['To'] = ";".join(to_list)
- try:
- server = smtplib.SMTP()
- server.connect(mail_server)
- server.starttls()
- server.login(mail_user, mail_pass)
- server.sendmail(mail_user, to_list, msg.as_string())
- server.close()
- return True
- except Exception, e:
- print str(e)
- return False
- def getDate():
- return str(datetime.datetime.utcfromtimestamp(time.time())+datetime.timedelta(hours=8))
- def send_warning_mail(title, info):
- nowTime = getDate()
- try:
- t = threading.Thread(target=send_mail, args=(mailto_list, title, str(nowTime) + " | " + str(info)))
- t.start()
- except:pass
- # send_mail(mailto_list, "mysql异常", info)
- if __name__ == '__main__':
- send_warning_mail("this is title", "\nthis is content")
- # print 111
这是能够加上附件的邮件发送:
- #!/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'
python (18)在linux中如何实现定时发送邮件的更多相关文章
- python (18)在linux中如何实现定时发送邮件到指定邮箱,监测任务
最近要用到,定时发送邮件功能: 如何定时,当然要用到linux中crontab了 如下的代码能够定时发送邮件 #!/usr/bin/env python # -*- coding=utf-8 -*- ...
- Linux中使用Crontab定时监测维护Tomcat应用程序的方法
Linux中使用Crontab定时监测维护Tomcat应用程序的方法 功能需求: 定时监测发布的某项应用程序是否可用,如果不可用,立即执行处理措施,实现自动化运维工作. 监测的应用接口: 新闻接口.天 ...
- linux中php项目无法发送邮件:PEAR mail package is not installed
发送邮件报错误:PEAR mail package is not installed的原因是linux中缺少PEAR mail组件, PEAR mail组件也就是PHP Pear Mail / SMT ...
- linux中使用Crontab定时执行java的jar包无法使用环境变量的问题
1.crontab简单使用 cmd 其实就是5个星星的事情,随便百度一下吧 5个时间标签用来标注执行的设定.比如每5分钟执行一次/5 * * * cmd 要特别注意 2.有些命令在命令行里执行很好,到 ...
- python 安装成linux中的systemd守护运行
参考文档1:https://blog.csdn.net/luckytanggu/article/details/53467687 参考文档2:https://www.jianshu.com/p/e14 ...
- linux中mail函数不能发送邮件怎么办
原因分析: 1.检查下本机25端口是否有开放 2.mail是利用linux自带的sendmail服务来发送邮件的,service sendmail status 查看下该服务的状态 发送命令:mail ...
- linux中mail函数不能发送邮件
没有安装或启动 sendmail 组件 解决办法 我是新手,命令不熟,所以写的很详细,老鸟勿喷哦 1.重新安装 sendmail 组件,我用的是 CentOS ,使用下面的命令安装 代码如下 复制代码 ...
- linux中使用Python IDE pycharm教程
今天使用vim编辑Python 并在linux中终端调试的时候,发现每次不是自己想要输出结果的时候,就要用vim编辑代码,再重新回到终端,比较浪费时间.搜索发现pycharm这一个Python ide ...
- Linux中的定时自动执行功能(at,crontab)
Linux中的定时自动执行功能(at,crontab) 概念 在Linux系统中,提供了两种提前对工作进行安排的方式 at 只执行一次 crontab 周期性重复执行 通过对这两个工具的应用可以让我们 ...
随机推荐
- poj1733 带权并查集
题意:有一个 0/1 数列,现在有n组询问和回答,表示某个区间内有奇数或者偶数个1,问到前多少个都没有逻辑错误,而下一个就不满足 可以定奇数为 1 偶数为 0作为每个元素的权值,表示它与它的祖先元素的 ...
- Java设计模式之工厂设计模式
工厂模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到了子类. 1.业务逻辑 1.1.父类Operation package c ...
- vi基本操作
vi的基本操作 a) 进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ vi myfile 不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(command m ...
- memory dump and CLR Inside Out
MSDN Magazine: CLR Inside Out https://msdn.microsoft.com/en-us/magazine/cc501040.aspx CLR Inside Out ...
- SQL Debugging
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn>“C:\Program Files\Debugging ...
- 自然语言处理——NLTK中文语料库语料库
Python NLTK库中包含着大量的语料库,但是大部分都是英文,不过有一个Sinica(中央研究院)提供的繁体中文语料库,值得我们注意. 在使用这个语料库之前,我们首先要检查一下是否已经安装了这个语 ...
- 002. 在HTML页面嵌入循环代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs ...
- Oracle常用知识小结
前言: 前一段时间项目开发数据库环境为Oracle,作为一个SQLer,表示各种不适应.所以刚开始的时候走了一些弯路,浪费了一席时间.因此就想把这些常用的东西给总结一下,算是对自己学习的总结,也希望能 ...
- PHP基础学习笔记(一)
1.初步了解PHP+ php是一种运行在服务端的跨平台的脚本语言. + php语法: <?php echo "welcome!": ?> php像javascript语 ...
- The Android Gradle Plugin and Gradle version-compatibility
http://tools.android.com/tech-docs/new-build-system/version-compatibility Version Compatibility Post ...