版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Vermont_/article/details/85490421
目录
比如你写了个监控天气预报的脚本,关注第二天的天气,或者电商网站上关注的某个商品降价了,或者关注的某个网页数据发生了变化,就可以发个邮件到邮箱来提醒自己。
思路:
1.1 Python-email 模块:
与发送邮件相关的 Python 模块:
smtplib
是关于 SMTP(简单邮件传输协议)的操作模块,在发送邮件的过程中起到服务器之间互相通信的作用,用来设置服务器连接的相关信息。
简单来说,即服务器之间通信的信息,包括信息头、信息主体等等。
举个简单的例子,当你登录邮箱,写好邮件后点击发送,这部分是由 SMTP 接管;而写邮件、添加附件是由 email 模块控制。
1.2 开通电子邮箱的SMTP功能:
在使用脚本发邮件之前,我们需要打开自己邮箱的 SMTP 功能,各家邮箱的设置方法就不一一讲述了,获得授权码,具体使用时可以百度一下
1.3 具体代码:
实践出真知,我们结合一个简单的代码来理解这一过程:登录 163 邮箱,向其他邮箱(比如QQ邮箱)发送邮件。
脚本分为三个步骤:
- 设置好服务器端信息
- 邮件主体信息
- 登录发送
另外在处理文本时,我们需要使用 MIMEText 类。
import smtplib
from email.mime.text import MIMEText
#设置服务器所需信息
#163邮箱服务器地址
mail_host = 'smtp.163.com'
#163用户名
mail_user = 'coder*******'
#密码(部分邮箱为授权码) ,比如163,QQ邮箱
mail_pass = 'coder******'
#邮件发送方邮箱地址
sender = 'coder*****@163.com'
#邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发
receivers = ['*****[email protected]']
#设置email信息
#邮件内容设置
message = MIMEText('content','plain','utf-8')
#邮件主题
message['Subject'] = 'title'
#发送方信息
message['From'] = sender
#接受方信息
message['To'] = receivers[0]
#登录并发送邮件
try:
smtpObj = smtplib.SMTP()
#连接到服务器
smtpObj.connect(mail_host,25)
#登录到服务器
smtpObj.login(mail_user,mail_pass)
#发送
smtpObj.sendmail(
sender,receivers,message.as_string())
#退出
smtpObj.quit()
print('success')
except smtplib.SMTPException as e:
print('error',e) #打印错误
1.4小结
通过上面的代码,想必大家已经对发邮件有了基本的认识。
从整体上我们要把握整个过程的思路:
- 登录
- 写邮件
- 发送