0
点赞
收藏
分享

微信扫一扫

#yyds干货盘点#python使用技巧之Email

萧让听雪 2022-02-24 阅读 86

smtplib发送邮件大概分为以下几个步骤:

1、连接到SMTP服务器;

2、发送SMTP的“Hello”消息;

3、登录到SMTP服务器;

4、发送电子邮件;

5、关闭 SMTP 服务器的连接。

import smtplib
from email.mime.text import MIMEText

def send_mail(text):
msg = MIMEText(text) #参数是消息内容
msg['From'] = 'from@163.com' #发送人
msg['To'] = 'to@163.com' #接收人
msg['Subject'] = 'test' #主题
smtp = smtplib.SMTP('smtp.163.com',25) #smtp服务器设置
try:
smtp.ehlo() #hello消息
smtp.starttls()#连接
smtp.login('from@163.com','password')#登陆
smtp.sendmail('from@163.com','to@163.com',msg.as_string())#发送
except Exception as e:
print(e)
finally:
smtp.quit() #退出

if __name__ == '__main__':
send_mail('test')

这是一个发送纯文本邮件的例子,send_mail函数中构建了一个MIMEText对象,并通过这个MIMEText对象设置收件人、发件人和邮件主题。如果需要发送带有附件的邮件,需要构建一个MIMEMultipart对象,并通过MIMEMultipart的attach方法添加附件。  

Python标准库中发送电子邮件的模块比较复杂,因此有许多开源的库提供了更加易用的接口来发送电子邮件。其中yagmail 是一个使用比较广泛的开源项目。yagmail的底层依然使用smtplib和email模块,但是相对于直接使用smtplib和email模块,yagmail提供了更加Pythonic的接口,并具有更好的易用性。

yagmail是开源的第三方库,因此在使用之前需要安装

pip install yagmail

import yagmail

yag = yagmail.SMTP(user='from@163.com',password='password',host='smtp.163.com',port=25)
yag.send('to@163.com','test','test')
yag.close()
举报

相关推荐

0 条评论