Linux之python发送邮件

Linux之python发送邮件python发送邮件

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

0 背景

在服务器端开发时,会遇到通过邮件发送报警或结果的情形,本文对使用 python 发送附件的方法做一个总结,用到的库是 smtp 和 email 两个基础库

  • smtplib:发送邮件(连接邮箱服务器、登陆邮箱、发送邮件)
  • email:构造邮件内容(发件人、收件人、主题、正文、附件等)

测试环境: ubuntu18.04

1 安装方法

pip install py-email

Jetbrains全家桶1年46,售后保障稳定

安装好之后,即可正常导入相关的库

2 邮箱配置

使用 qq 邮箱服务器发送邮件时,需要开启 SMTP 服务,并获取相关授权码,进入邮箱首页,找到 “设置” — “账户” — “POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”

Linux之python发送邮件

 开启 SMTP 服务,并获得授权码

Linux之python发送邮件

 一个类似于下边的码

Linux之python发送邮件

 至此邮箱配置完成

3 测试

import smtplib
# 发送字符串的邮件
from email.mime.text import MIMEText
# 需要 MIMEMultipart 类
from email.mime.multipart import MIMEMultipart

# 设置服务器所需信息
fromEmailAddr = 'zongxp@qq.com'  # 邮件发送方邮箱地址
password = 'ialcztsjdxus****'  # (注意不是邮箱密码,而是为授权码)
toEmailAddrs = ['zongxp@jxresearch.com']  # 邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发

# 设置email信息
# ---------------------------发送带附件邮件-----------------------------
# 邮件内容设置
message =  MIMEMultipart()
# 邮件主题
message['Subject'] = 'python test email'
# 发送方信息
message['From'] = fromEmailAddr
# 接受方信息
message['To'] = toEmailAddrs[0]
# 邮件正文内容
message.attach(MIMEText('hello,test Python send Email', 'plain', 'utf-8'))

# 构造附件
att1 = MIMEText(open('/media/nvidia/jiaxun/20220214.zip', 'rb').read(), 'base64', 'utf-8')
att1['Content-type'] = 'application/octet-stream'
att1['Content-Disposition'] = 'attachment; filename="20220214.zip"'
message.attach(att1)
# ---------------------------------------------------------------------

# 登录并发送邮件
try:
    server = smtplib.SMTP('smtp.qq.com')  # qq邮箱服务器地址,端口默认为25
    server.login(fromEmailAddr, password)
    server.sendmail(fromEmailAddr, toEmailAddrs, message.as_string())
    print('success')
    server.quit()
except smtplib.SMTPException as e:
    print("error:", e)

参考 

python – 如何更改服务器上的最大邮件大小限制? – IT工具网

Python SMTP发送邮件 | 菜鸟教程

python 发送邮件带附件(txt、图片、excel、压缩包等)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231720.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 四种黑盒测试方法_八大心态的总结怎么写

    四种黑盒测试方法_八大心态的总结怎么写一、等价类划分法1.定义2.划分等价类2.1有效等价类2.2无效等价类3.划分等价类的标准4.划分等价类的方法5.设计测试用例6.三角形实例二、边界值分析法1.定义2.与等价划分的区别3.边界值分析方法的考虑4.常见的边界值5.边界值分析6.基于边界值分析方法选择测试用例的原则7.实例说明8、三角形问题的边界值分析测试用例三、错误推测方法1.定义2.错误推测方法的基本思想:四、因果图方法1.定义2.因果图法产生的背景:3.因果图介绍4.因果图概念5.采用因果图法设计测试用例的步.

    2022年10月3日
  • 马赛克还原神器—Depix,真的有那么神吗?「建议收藏」

    马赛克还原神器—Depix,真的有那么神吗?「建议收藏」Depix是用于从马赛克中还原密码/英文数字组合的Python工具。它的官方效果是这样的:效果非常令人惊艳,恢复后基本和原文图相差无几。但是真的有那么神吗?老规矩,需要打包好的软件关注小编,QQ群:721195303领取。01怎么做到的?第一步,作者在编辑器中使用了与原图(带有马赛克的图片)相同的字体设置(文本大小,字体,颜色等设置),然后将debruinseq.txt内的文字和数字放入编辑器中并截图,这张截图中的所有文字都将被像素化后作为“搜索集”来识别原图中马赛克的真实..

    2022年6月23日
  • react子组件向父组件传递数据_react子组件改变父组件的状态

    react子组件向父组件传递数据_react子组件改变父组件的状态本博客代码是React父组件和子组件相互传值的demo;实现封装一个折线图,折线图选择下拉框,获取下拉框点击的值并且传给父组件根据下拉框筛选的条件更新视图;效果图如下:父组件代码:代码解析:父组件Parent引用子组件Sub,传递了list组件给子组件,并且接收子组件传递给父组件的storeId;importReact,{Component}fro…

    2022年9月5日
  • 组合数公式(代码实现)[通俗易懂]

    组合数公式(代码实现)[通俗易懂]比如求CnmC_{n}^{m}Cnm​,代码如下:llcombi(intn,intm){//求组合数的函数llcnt=1;for(inti=0;i<m;i++){cnt*=n-i;cnt/=i+1;}returncnt;}…

    2022年7月25日
  • C语言再学习 — 关键字volatile

    C语言再学习 — 关键字volatile占楼

    2022年7月27日
  • 南邮CTF–bypass again[通俗易懂]

    南邮CTF–bypass again[通俗易懂]南邮CTF–bypass again

    2022年4月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号