import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
import psutil
import socket my_sender='1028540310@qq.com' # 发件人邮箱账号
my_pass = 'xxxxxxxxxxxxxxx' # 发件人邮箱密码(当时申请smtp给的口令)
my_user2 ='1028540310@qq.com' # 收件人邮箱账号,我这边发送给自己
my_user = 'xiezc@szmall.com' hostname = socket.gethostname() #获取主机号
ipaddr = socket.gethostbyname(hostname) #获取ip地址
net_info = "ip/主机名"+hostname+':'+ipaddr ps_dif = psutil.disk_partitions() #获取分区
ps_fen = psutil.disk_usage('/') #获取根目录分区 一般系统磁盘挂载在根目录
div_gb_factor =(1024.0 ** 3) available = round(ps_fen.free/div_gb_factor,2)
percent = '%.2f'%(ps_fen.percent) '''磁盘具体信息'''
total_mem = "磁盘总量: %fGB" % (ps_fen.total/div_gb_factor)
used_mem = "磁盘已使用量: %fGB" % (ps_fen.used/div_gb_factor)
free_mem = "磁盘未使用量: %fGB" % (ps_fen.free/div_gb_factor)
perce_mem = "磁盘已使用百分比: %f" % (ps_fen.percent) info_mem = "磁盘详细信息:"+'\n'+total_mem+used_mem+free_mem+perce_mem # yag = yagmail.SMTP(user='1028540310@qq.com', password='hrttmajzjrbgbebc', host='smtp.qq.com', port='465') if float(available) <5 or float(percent) >9.0 :
contrent = "磁盘空间少于5G了,请检查磁盘"+'\n'+info_mem+'\n'+net_info
else:
contrent = "磁盘容量正常,请放心使用"+'\n'+info_mem+'\n'+net_info def mail():
ret=True
try:
msg=MIMEText(contrent,'plain','utf-8') # 括号里的内容
msg['From']=formataddr(["小狐狸",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
#msg['To']=formataddr(["开发者",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject']="系统监控日志" # 邮件的主题,也可以说是标题 server=smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是465
server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
server.sendmail(my_sender,[my_user,my_user2],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit()# 关闭连接
except Exception as e:# 如果 try 中的语句没有执行,则会执行下面的 ret=False
ret=False
print(e)
return ret ret=mail()
if ret:
print("邮件发送成功")
else:
print("邮件发送失败")

  

  

下面是我做到一个温馨小案例,每天给自己和朋友发送邮件,每天都会自动更新一句话和图片,让自己有个好心情。数据是从金山词霸接口得来的。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import yagmail
import requests
import urllib.request #py3中urllib2改成了urllib.requests
import os
yag = yagmail.SMTP(user='xxxxx@qq.com',password='xxxxx',host='smtp.qq.com',port='465')
url = "http://open.iciba.com/dsapi/"
r = requests.get(url)
body = r.json()['note'] image = r.json()['fenxiang_img']
name = image.split('/')[-1]
print(body)
path = "/opt/img"
if not os.path.exists(path):
os.mkdir(path) s = urllib.request.urlretrieve(image,r'/opt/img//%s'%name) #yag.send(to='xxxxx@qq.com', subject='测试邮件', contents=[body,'深圳政府采购接口测试.py']) jpg_path = path+'/%s'%name try:
yag.send(to=['2559567285@qq.com','429405037@qq.com','1028540310@qq.com'], subject='一封特殊的邮件', contents=[body,jpg_path])
except Exception as e:
print(e)
else:
print('邮件发送成功')
finally:
print('程序已执行') 当然数据还可以自己建文本自己弄数据,个性DIY自己的邮件。

  



												

python3发送邮件的更多相关文章

  1. 用Python3发送邮件详解

    [整个邮件系统是怎样工作的] 邮件自互联网诞生之初就有了,它和web服务一样也是采用的c/s架构,比如我们常见的邮件客户端有outlook.foxmail这些邮件客户端软件. 当我们要发邮件时客户端就 ...

  2. Python3发送邮件功能

    Python3实现邮件发送功能 import smtplib from email.mime.text import MIMEText # 导入模块 class SendEmail: def send ...

  3. 关于python3 发送邮件

    一:发送文本信息 from email.mime.text import MIMEText from email.header import Header from smtplib import SM ...

  4. python3发送邮件01(简单例子,不带附件)

    # -*- coding:utf-8 -*-import smtplibfrom email.header import Headerfrom email.mime.text import MIMET ...

  5. python3 发送邮件

    import smtplibfrom email.mime.text import MIMETextdef SendEmail(fromAdd,toAdd,subject,text): _pwd = ...

  6. python3 发送邮件功能

    阿-_-涵的博客 #首先写一个模块功能,发邮件功能打包起来 from smtplib import SMTP from email.mime.text import MIMEText def send ...

  7. python3 发送邮件添加附件

    from email.header import Headerfrom email.mime.application import MIMEApplicationfrom email.mime.mul ...

  8. python3发送邮件02(简单例子,带附件)

    #!/usr/bin/env python# -*- coding:UTF-8 -*- import osimport smtplibfrom email.header import Headerfr ...

  9. Python3 SMTP发送邮件

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. python的smtplib提供了一 ...

随机推荐

  1. luogu P4725 多项式对数函数 (模板题、FFT、多项式求逆、求导和积分)

    手动博客搬家: 本文发表于20181125 13:25:03, 原地址https://blog.csdn.net/suncongbo/article/details/84487306 题目链接: ht ...

  2. win7下qt+opencv的环境配置

    博客http://blog.csdn.net/qiurisuixiang/article/details/8665278已经完整地介绍了整个环境配置.需要一步不差按原执行.需要说明的是,几个path的 ...

  3. 【ZOJ 4067】Books

    [链接] 我是链接,点我呀:) [题意] [题解] 统计a中0的个数cnt0 然后m减去cnt0 因为这cnt0个0是一定会取到的. 如果m==0了 那么直接找到数组中的最小值mi 输出mi-1就好 ...

  4. Visifire实现统计图

    /// <summary> /// 柱形图 /// </summary> public static Chart InitCompareChart(string fundNam ...

  5. 洛谷 P2709 BZOJ 3781 小B的询问

    题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求$\sum_1^Kc_i^2$的值,其中$c_i$表示数字i在[L..R]中的重复次数.小B请 ...

  6. FZU - 1606 - Format the expression

    先上题目: Problem 1606 Format the expression Accept: 87    Submit: 390Time Limit: 1000 mSec    Memory Li ...

  7. 关于使用sudo命令后找不到JAVA_HOME的问题

    今天在虚拟机搭建zookeeper环境,结果死活运行不起来,唯一的信息只有out文件里“没有java命令”这一个提示,找来找去发现是找不到java运行环境.可是很奇怪,明明我已经配置了,而且在终端执行 ...

  8. POJ 1755

    列出不等式后,把同时除Z把它去掉. 注意了,这里应该 是把直线变两点表示的向量更为简单,我开始就直接用直线写,后来,唉,写不下去了.. #include <iostream> #inclu ...

  9. POJ 2167 Irrelevant Elements 质因数分解

    Irrelevant Elements Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 2231   Accepted: 55 ...

  10. MX2怎样利用Fiddler进行网络数据抓包

    首先须要保证PC与手机在同一局域网内或有独立公网IP, 下面以在同一局域网为例(保证手机能訪问到这台PC机器): 1. PC端配置 1). 安装Fiddler 2). 开启Fiddler下面功能:   ...