当前位置: 首页 > news >正文

Python自动发邮件

我经常需要用手机看服务器的运行情况,所以就写一个脚本,通过邮件把服务器运行情况发送给我,直接手机可以查看炼丹状态。事实证明还是很有用的,所以撰写一篇博文将脚本分享给大家。这里用到smtplibemail两个python包。

import smtplib
from email.mime.text import MIMEText
from email.header import Header
from smtplib import SMTP_SSL
from email.mime.multipart import MIMEMultipartclass Mailer:def __init__(self, account, password):self.sender = smtplib.SMTP_SSL('smtp.qq.com')self.login(account, password)self.account = accountself.msg = Nonedef login(self, account, password):if "qq.com" not in account:print("Only QQ mail be supported!")raise Errorself.sender.login(account, password)def write_mail(self, header, content):self.msg = MIMEMultipart()self.msg["Subject"] = Header(header, "utf-8")self.msg["From"] = self.accountself.msg.attach(MIMEText(content, "plain", "utf-8"))def send_to(self, receiver):self.msg["To"] = receiverself.sender.sendmail(self.account, receiver, self.msg.as_string())print(self.msg.as_string())def _main():# login your QQ mailmailer = Mailer('xxxxxx@qq.com','your password')# write mailmailer.write_mail("标题", "测试内容。")# send mail to any mailmailer.send_to("xxxxxxx@163.com")if __name__ =='__main__':_main()

脚本由本人原创,借用请说明出处。这里只能使用QQ邮箱,如果使用其他邮箱需要改写对应的smtp服务器。同时,使用发送方邮箱时需要在设置中开启SMTP服务,否则将会无法登录。

如何开启SMTP服务器?

  1. 用网页登录对应邮箱;
  2. 找到设置;
  3. 在设置中找到“开启POP3/IMAP/SMTP/Exchange/CardDAV服务”;
  4. 授权开启即可。

有疑问可留言交流~

相关文章:

  • vite打包构建时环境变量(env)生成可配置的js文件
  • Rocky Linux 运维工具 Systemd
  • 【每日一题】2867. 统计树中的合法路径数目-2024.2.27
  • AI大模型分析:数据背后隐藏的故事!
  • 【蓝桥杯】错误票据
  • 贪心 Leetcode 56 合并区间
  • 算法复习之二分【备战蓝桥杯】
  • 无人机飞行控制系统技术,四旋翼无人机控制系统建模技术详解
  • docker通过dockerfile安装sftp教程。
  • React富文本编辑器开发(一)
  • 如何将一个远程git的所有分支推到另一个远程分支上
  • linux 如何给服务器批量做免密,如何批量挂在磁盘
  • React编写组件时,如何省略.tsx后缀
  • 30天自制操作系统(第23天)
  • 现代灰色系有质感的家,低调的高级感
  • 收藏网友的 源程序下载网
  • 【RocksDB】TransactionDB源码分析
  • Android优雅地处理按钮重复点击
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • exif信息对照
  • github指令
  • iOS 颜色设置看我就够了
  • Java教程_软件开发基础
  • Laravel 中的一个后期静态绑定
  • Python学习之路16-使用API
  • vue-loader 源码解析系列之 selector
  • 力扣(LeetCode)56
  • 日剧·日综资源集合(建议收藏)
  • 入手阿里云新服务器的部署NODE
  • 使用Gradle第一次构建Java程序
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 7行Python代码的人脸识别
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (09)Hive——CTE 公共表达式
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (十六)Flask之蓝图
  • ****Linux下Mysql的安装和配置
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .net 受管制代码
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • @31省区市高考时间表来了,祝考试成功
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [20180224]expdp query 写法问题.txt
  • [C++]C++类基本语法
  • [GPT]Andrej Karpathy微软Build大会GPT演讲(上)--GPT如何训练
  • [hdu 1247]Hat’s Words [Trie 图]
  • [HITCON 2017]SSRFme perl语言的 GET open file 造成rce
  • [IE编程] IE8 新增的C++开发接口
  • [LeetCode]—Copy List with Random Pointer 深度复制带“任意指针”的链表
  • [NISACTF 2022]level-up
  • [NOI 2016]循环之美
  • [sqlmap]学习笔记#1
  • [Unity数据管理]自定义菜单创建Unity内部数据表(ScriptableObject)