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 周期性重复执行 通过对这两个工具的应用可以让我们 ...
随机推荐
- JS中的自定义属性
<div id="div1" a="a" data-bbb="bbb">div</div> <script&g ...
- python3基础语法
一.编码 默认情况下, python3源码文件以UTF-8编码,所有字符串都是unicode字符串.当然你也可以为源码文件指定不同的编码: # -*- coding: gbk -*- 二.标识符 1. ...
- 如何安装 VLFeat工具包到Linux (Ubuntu) 64_bit system matlab 中?
最近要提一个数据集的feature,想先用HOG特征做一个baseline,听师兄说VLFeat 是一个不错的工具包,就下载了试试,刚刚配置成功,网上各种搜索教程啊 但是都不行,最后还是硬着头皮看官网 ...
- css div要点汇总
1.子元素选择两种 h1 strong{color:red}意思是所有后代只要是strong就变成红色 h1>strong{color:red}效果同上但只对第一代后代元素有效 相邻兄弟元素 h ...
- 简单实用的Android ORM框架TigerDB
TigerDB是一个简单的Android ORM框架,它能让你一句话实现数据库的增删改查,同时支持实体对象的持久化和自动映射,同时你也不必关心表结构的变化,因为它会自动检测新增字段来更新你的表结构. ...
- C#→关于System.Data.Linq下的Table<TEntity> 泛型类 的问题
Table<TEntity>表示表格记录,它是一个泛型集合类,它的元素就是表格实体对象.它提供一组方法,对元素进行添加删除操作,并可以通过DataContext将这些操作保存到数据库. 表 ...
- [firefox+plug-n-hack]轻松地配置burpsuite代理https流量
http://zone.wooyun.org/content/25982 需要用到firefox的插件plug-n-hack下载https://raw.githubusercontent.com/mo ...
- 虚拟化之vmware虚拟机扩容与克隆
前提条件: 1.在新建虚拟机的时候创建磁盘如下图,之后这个磁盘就可以在虚拟机关机状态下动态扩展大小,否则只能通过添加另外一块硬盘的方式来扩容.
- Send an email with format which is stored in a word document
1. Add a dll reference: Microsoft.Office.Interop.Word.dll 2. Add the following usings using Word = M ...
- ASP.net MVC3 报错"未找到视图“Index”或其母版视图,或没有视图引擎支持搜索的位置 "的解决方法
注意添加MVC3视图不能直接在View文件下新建视图,而是在控制器的Index 右击添加视图,就会在View下面产生一个Product文件夹(包含Index.cshtml) 就可以解决这个问题. 具体 ...