详解利用Python发邮件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Vermont_/article/details/85490421

目录

 1.1 Python-email 模块

与发送邮件相关的 Python 模块:

1.2 开通电子邮箱的SMTP功能:

1.3 具体代码:

1.4小结


比如你写了个监控天气预报的脚本,关注第二天的天气,或者电商网站上关注的某个商品降价了,或者关注的某个网页数据发生了变化,就可以发个邮件到邮箱来提醒自己。

思路:

 1.1 Python-email 模块:

 

与发送邮件相关的 Python 模块:


smtplib

是关于 SMTP(简单邮件传输协议)的操作模块,在发送邮件的过程中起到服务器之间互相通信的作用,用来设置服务器连接的相关信息。

email

简单来说,即服务器之间通信的信息,包括信息头、信息主体等等。

举个简单的例子,当你登录邮箱,写好邮件后点击发送,这部分是由 SMTP 接管;而写邮件、添加附件是由 email 模块控制。

1.2 开通电子邮箱的SMTP功能:


在使用脚本发邮件之前,我们需要打开自己邮箱的 SMTP 功能,各家邮箱的设置方法就不一一讲述了,获得授权码,具体使用时可以百度一下

1.3 具体代码:

实践出真知,我们结合一个简单的代码来理解这一过程:登录 163 邮箱,向其他邮箱(比如QQ邮箱)发送邮件。

脚本分为三个步骤:

  1. 设置好服务器端信息
  2. 邮件主体信息
  3. 登录发送

另外在处理文本时,我们需要使用 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小结

通过上面的代码,想必大家已经对发邮件有了基本的认识。

从整体上我们要把握整个过程的思路:

  1. 登录
  2. 写邮件
  3. 发送

猜你喜欢

转载自blog.csdn.net/Vermont_/article/details/85490421
今日推荐