python3发送邮件
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发送邮件的更多相关文章
- 用Python3发送邮件详解
[整个邮件系统是怎样工作的] 邮件自互联网诞生之初就有了,它和web服务一样也是采用的c/s架构,比如我们常见的邮件客户端有outlook.foxmail这些邮件客户端软件. 当我们要发邮件时客户端就 ...
- Python3发送邮件功能
Python3实现邮件发送功能 import smtplib from email.mime.text import MIMEText # 导入模块 class SendEmail: def send ...
- 关于python3 发送邮件
一:发送文本信息 from email.mime.text import MIMEText from email.header import Header from smtplib import SM ...
- python3发送邮件01(简单例子,不带附件)
# -*- coding:utf-8 -*-import smtplibfrom email.header import Headerfrom email.mime.text import MIMET ...
- python3 发送邮件
import smtplibfrom email.mime.text import MIMETextdef SendEmail(fromAdd,toAdd,subject,text): _pwd = ...
- python3 发送邮件功能
阿-_-涵的博客 #首先写一个模块功能,发邮件功能打包起来 from smtplib import SMTP from email.mime.text import MIMEText def send ...
- python3 发送邮件添加附件
from email.header import Headerfrom email.mime.application import MIMEApplicationfrom email.mime.mul ...
- python3发送邮件02(简单例子,带附件)
#!/usr/bin/env python# -*- coding:UTF-8 -*- import osimport smtplibfrom email.header import Headerfr ...
- Python3 SMTP发送邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. python的smtplib提供了一 ...
随机推荐
- (15)Spring Boot使用Druid和监控配置【从零开始学Spring Boot】
Spring Boot 系列博客] 更多查看博客:http://412887952-qq-com.iteye.com/blog Spring Boot默认的数据源是:org.apache.tomcat ...
- NYOJ 一笔画问题 欧拉路
一笔画问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下 ...
- 错误总结之播放器(vitamio)音量实体键与触摸手势控制,音量调节冲突
这个但是独家心得:经过几天的网上资料查询未果,在群里遇到一同行. 然后让他帮我看了看,终于攻克了该冲突. 此时,谨以此来感谢那位同僚的热情帮助: 说说这个问题吧: 眼下我在做一款影视方面的项目,在该项 ...
- Google面试题-高楼扔鸡蛋问题
本文由 @lonelyrains 出品.转载请注明出处. 文章链接: http://blog.csdn.net/lonelyrains/article/details/46428569 高楼扔鸡蛋问 ...
- C#之打印乘法表
设计说明 由图可知: 1.我们需要打印出九行: 2.每行中最大列数等于行数: 代码实现 public void Display1() { Console.WriteLine("乘法表:&qu ...
- UVA - 10029 Edit Step Ladders (二分+hash)
Description Problem C: Edit Step Ladders An edit step is a transformation from one word x to another ...
- 【待解决】创建maven web工程报错
报错信息如下: Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 o ...
- chrome 插件开发2
登录 | 注册 基础文档 综述 调试 Manifest 文件 代码例子 模式匹配 分类索引 改变浏览器外观 Browser Actions 右键菜单 桌面通知 Omnibox 选项页 覆写特定页 ...
- 车载导航系统中GPS的定位
首先购买的车载导航系统有GPS信号接受功能,能够接收GPS的经纬度信号,然后导航终端里面安装的导航地图能够非常详细的显示详细的经纬度坐标和地物信息.导航终端通过接收器接收到卫星24小时不间断发射的免费 ...
- Linux下叹号!的用法
在定义包含!的字符串变量时,出现了以下提示错误. 注意:在centos系统下错误,在Fedora系统可以正常运行. 修正方法有以下几种: (1)将整个字符串用单引号引起来. (2)在!后添加空格. ( ...