Python收发邮件,python邮件自动发送
本文将学习各种类型的邮件发送方法,如普通文本邮件、带附件的邮件等。现在我们还不太了解如何通过程序发送邮件,接下来会详细介绍。
00-1010使用python发送普通邮件,了解发送邮件的流程,了解邮件协议smtplib模块,邮件包,发送邮件,小case,发送邮件,避坑,总结,邮件自动化章节需要的新模块:
Smtplib邮件协议和发送模块
电子邮件内容定义模块
计划计时模块
Smtplib和email模块可以帮助我们正常发送邮件;日程模块可以帮助我们定时发送邮件,比如工资邮件和其他需要定时发送的邮件。
目录
利用 python 发送普通邮件
下面简单描述一下发送邮件的过程(说实话,我不想写这一步)
第一步:登录邮箱。
第二步:写下邮件收件人的电子邮件地址。
第三步:写邮件标题和内容(有时添加附件)。
第四步:发送邮件。
认识发送邮件流程
Smtp:发送邮件的协议pop3:接收邮件的协议什么是协议?
协议是由底层网络封装的规则。不用管它的具体规则是什么,用上层的工具就行了。
比如在发送邮件的场景中,当我们使用smtp协议发送邮件时。网络发现是smtp协议,就知道是要发出去的邮件;pop3也是如此。当网络发现这是pop3协议时,它就知道这是一封要接收的电子邮件。
认识邮件协议
smtplib模块是python中发送邮件的最重要的模块之一。
创建协议对象:
SmptObj=smptlib。SMTP()通过smptlib生成smpt协议对象。SMTP()
创建链接:
Smbobj。connect (smpt服务器地址,25)是通过connect(服务器IP地址,端口号),smpt服务默认端口号是25。
认证:
SMobj。login(mail_user,mail_password)通过login (mail _ user,mail _ password)传入电子邮件名称和登录密码,完成验证。(注意:这里有些邮箱服务器传入的是密码而不是登录密码[也叫授权码],可以在邮箱的设置中查看)
发送邮件:
Smbobj。Sendmail(Sendmail,receivers,message)通过Sendmail(Sendmail,receivers,message)将邮件内容传送到发送方的邮箱、接收方的邮箱,完成发送邮件的动作。
PS:这里可以看到‘收件人邮箱’是‘收件人’的复数,所以‘收件人邮箱’是一个数组和列表,可以发给多人;内容的“消息”是消息对象的加密字符串。
smtplib 模块
邮件包有两个常用的功能:
函数名参数描述MIMEText邮件内容、邮件类型和编码格式,定义邮件发送内容的对象、头,将各种信息定义成对象,如头。PS:上面提到的“消息”是由“MIMEText”加密生成的消息对象的加密字符串。
email 包
代码示例如下:
brush:py;"># coding:utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
第三方的 smpt [脚本中涉及的邮箱地址都是假的,请使用自己的真实邮箱地址进行测试]
mail_host = "smtp.sina.com" # 设置邮箱服务器
mail_user = "conan868242" # 设置自己的邮箱
mail_pass = "cb997b01a87232b2" # 这里就是邮箱的口令,也就是授权码;不是密码。
sender = "conan868242@sina.com" # 定义发送者邮箱(其实就是自己)
receivers = ["3241716373@qq.com"] # 定义接受者邮箱(可以是多个接收者)
message = MIMEText("这是一封测试邮件 O(∩_∩)O哈哈~", "plain", "utf-8") # 定义邮件内容;"plain"是格式,表示是普通的文件内容
message["From"] = Header(sender) # 在message内定义发送信息 --> 发送者
message["Subject"] = Header("Python 测试邮件发送", "utf-8") # 在message内定义发送信息的标题
print("加密后的发送内容\n", message.as_string()) # 打印输出加密后的发送内容
try: # 捕获发送邮件的异常
smtpObj = smtplib.SMTP() # 实例化 SMTP 协议对象
smtpObj.connect(mail_host, 25) # 链接 SMTP 服务器
smtpObj.login(mail_user, mail_pass) # 登录邮箱验证
smtpObj.sendmail(sender, receivers, message.as_string()) # 发送邮件; "message" 通过 "as_string()" 进行发送内容字符串的加密
except smtplib.SMTPException as error:
print("error:{}".format(error))
PS:不要尝试用这个源码运行了,我已经将授权码改了。
运行结果如下:
发送邮件的避坑总结
发送者邮箱开通 smtp 与 pop3 的访问许可
不同的邮箱需要的验证方式不同(有的是登录密码,有的是授权码)
有些邮箱开通授权的访问许可和授权码可能会收费,这里需要注意一下(比如 QQ 邮箱 [给个差评])
到此这篇关于Python实现邮件发送功能的方法详解的文章就介绍到这了,更多相关Python邮件发送内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。