如何使用Python发送邮件?

2025-11-27 21:35:20

1、首先在进入正题之前,我们需要对一些基本内容有所了解:常用的电子邮件协议有SMTP、POP3、IMAP4,它们都隶属于TCP/IP协议簇,默认状态下,分别通过TCP端口25、110和143建立连接。Python内置对SMTP的支持,该协议支持发送纯文本邮件、HTML邮件以及带附件的邮件,Python的smtplib,email模块都支持该协议。下面我们开始进入正题:

如何使用Python发送邮件?

2、第一步,首先你要准备两个邮箱帐号,一个是常用的(接收端),另一个可以注册网易163邮箱或者foxmail邮箱也可(发送端),本次我使用两个QQ邮箱进行演示。首先在邮箱的设置-账户中开启SMTP功能

如何使用Python发送邮件?

3、第二步,点击生成授权码,按照弹出窗口的提示发送短信,发送后单击我已发送按钮将生成的授权码复制下来以备接下来使用。

如何使用Python发送邮件?

如何使用Python发送邮件?

4、第三步,在顺利完成上述步骤后,我们来编辑代码:

from email.header import Header

from email.mime.text import MIMEText

from email.utils import parseaddr,formataddr

import smtplib

def _format_addr(s):    

    name,addr = parseaddr(s)    

    return formataddr((Header(name,'utf-8').encode(),addr))

#发件人地址

from_addr = '10******10@qq.com'

#密码刚才复制的邮箱的授权码

password = 'u*******************g'

#收件人地址

to_addr =  '10********28@qq.com'

#邮箱服务器地址

smtp_server = 'smtp.qq.com'

#设置邮件信息

msg = MIMEText('Python爬虫运行异常,异常信息为遇到HTTP 403','plain','utf-8')

msg['From'] = _format_addr('Python爬虫一号<%s>'%from_addr)

msg['To'] = _format_addr('管理员<%s>'%to_addr)

msg['Subject'] = Header('一号爬虫运行异常.','utf-8').encode()

#发送邮件

server = smtplib.SMTP_SSL(smtp_server,465)

#打印出和SMTP服务器交互的所有信息

server.set_debuglevel(1)

#登录SMTP服务器

server.login(from_addr,password)

#sendmail():发送邮件,由于可以一次发给多个人,所以传入一个list邮件正文是一个str,as_string()把MIMEText对象变成str。

server.sendmail(from_addr,to_addr,msg.as_string())server.quit()print('邮件发送成功!')

如何使用Python发送邮件?

如何使用Python发送邮件?

5、第五步,登录接收端邮箱查看是否发送成功:

如何使用Python发送邮件?

6、如果能成功收到邮件的话就说明大功告成了,下次在进行爬取工作时就不用在眼巴巴的盯着了。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢