python发送邮件(带附件)+屏幕截图
程序员文章站
2022-06-24 22:47:54
python发送邮件(带附件)+屏幕截图
import smtplib
#smtplib这个模块是管发邮件
from email.mime.text import mimetext
#构造...
python发送邮件(带附件)+屏幕截图
import smtplib #smtplib这个模块是管发邮件 from email.mime.text import mimetext #构造邮件内容 from email.mime.multipart import mimemultipart #发带附件的邮件用的 email_host = 'smtp.163.com' #邮箱服务器地址 email_user = 'xxx@163.com' # 发送者账号 email_pwd = 'xxx' # 发送者密码是邮箱的授权码,不是登录的密码 maillist = 'xxx@xxx.com' #收件人邮箱,多个账号的话,用逗号隔开 new_msg = mimemultipart() #构建了一个能发附件的邮件对象 new_msg.attach(mimetext('这是python测试发邮件的邮件,不要回复')) # 邮件内容 new_msg['subject'] = 'python测试邮件带附件' # 邮件主题 new_msg['from'] = email_user # 发送者账号 new_msg['to'] = maillist # 接收者账号列表 att = mimetext(open('like_report.txt').read()) att["content-type"] = 'application/octet-stream' att["content-disposition"] = 'attachment; filename="haha.txt"' new_msg.attach(att) smtp = smtplib.smtp(email_host,port=25) # 连接邮箱,传入邮箱地址,和端口号,smtp的端口号是25 smtp.login(email_user, email_pwd) # 发送者的邮箱账号,密码 smtp.sendmail(email_user, maillist, new_msg.as_string()) # 参数分别是发送者,接收者,第三个是把上面的发送邮件的内容变成字符串 smtp.quit() # 发送完毕后退出smtp
已调试通过,以下是完整代码
# -*- coding: utf-8 -*- import smtplib from email.mime.text import mimetext from datetime import datetime import time from pil import imagegrab from email.mime.application import mimeapplication from email.mime.multipart import mimemultipart import os mailto_list=['panyu881024@163.com'] #收件人(列表) huawei_to_list= ['panyu10@huawei.com'] mail_host="smtp.163.com" #使用的邮箱的smtp服务器地址,这里是163的smtp地址 mail_user="test_time_for_me@163.com" #用户名 mail_pass="" #密码 mail_postfix="163.com" #邮箱的后缀,网易就是163.com def send_mail(to_list,sub,content,pic_name): me="hello"+"<"+mail_user+"@"+mail_postfix+">" #msg = mimetext(content,_subtype='plain') msg = mimemultipart() msg['subject'] = sub msg['from'] = me msg['to'] = ";".join(to_list) #将收件人列表以‘;’分隔 puretext = mimetext('content: '+content) msg.attach(puretext) jpgpart = mimeapplication(open(pic_name, 'rb').read()) jpgpart.add_header('content-disposition', 'attachment', filename=pic_name) msg.attach(jpgpart) try: server = smtplib.smtp() server.connect(mail_host) #连接服务器 server.login(mail_user,mail_pass) #登录操作 server.sendmail(me, to_list, msg.as_string()) server.close() return true except exception, e: print str(e) return false while true: try: time_now = str(datetime.now()) pic = imagegrab.grab() pic_name = time.strftime('%y-%m-%d-%h-%m-%s')+'.jpg' pic.save(pic_name) my_info = 'test_time_for_me' send_mail(huawei_to_list,time_now,my_info,pic_name) send_mail(mailto_list,time_now,my_info,pic_name) #os.remove(pic_name) print time_now time.sleep(600) except exception ,e: print e send_mail_bak() time.sleep(300)
上一篇: redis 多实例监控