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 周期性重复执行 通过对这两个工具的应用可以让我们 ...
随机推荐
- [luogu P2170] 选学霸(并查集+dp)
题目传送门:https://www.luogu.org/problem/show?pid=2170 题目描述 老师想从N名学生中选M人当学霸,但有K对人实力相当,如果实力相当的人中,一部分被选上,另一 ...
- hdu1811 并查集+拓扑序
题意:现在有一个排名系统,有一系列信息,分别是 > < = 的比较,而如果最终相等,就会将这些相等的按照序号从小到大排,问给出的信息是否可以确定完整的排序. 由于如果很多点相等,他们肯定能 ...
- 【转】完美解除Windows7的驱动程序强制签名限制
原文网址:http://nick.txtcc.com/index.php/nocategory/290 Windows 7很J,很多驱动程序都无法安装,因为Windows 7不像Vista,必须要求所 ...
- android屏幕亮度
/** * 获得当前屏幕亮度的模式 * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 为自动调节屏幕亮度 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 为 ...
- C# typeof()实例详解
typeof(C# 参考) 用于获取类型的 System.Type 对象.typeof 表达式采用以下形式: System.Type type = typeof(int); 备注 若要获取表达式的运 ...
- SQL Server 表所在的文件组
SELECT o.[name] ,-- o.[type], i.[name], i.[index_id], f.[name] FROM sys.indexes i ...
- Asp.net MVC的actionlink到Areas里action
<li>@Html.ActionLink("Home", "Index", "Home", new { area = " ...
- js停止冒泡和阻止浏览器默认行为
停止冒泡通用方法: function stopBubble(e) { //如果提供了事件对象,是非IE浏览器 if ( e && e.stopPropagation ) //使用W3C ...
- Redis 利用锁机制来防止缓存过期产生的惊群现象-转载自 http://my.oschina.net/u/1156660/blog/360552
首先,所谓的缓存过期引起的“惊群”现象是指,在大并发情况下,我们通常会用缓存来给数据库分压,但是会有这么一种情况发生,那就是在一定时间 内生成大量的缓存,然后当缓存到期之后又有大量的缓存失效,导致后端 ...
- php 连接测试sphinx
shpinx.php <?php header("Content-type:text/html;charset=utf-8"); include 'SphinxClient. ...