Python用代码实现发送邮件

今天我们用Python实现简单的发送邮件。

首先我们必须要有邮箱账号,发件人的邮箱必须先设置开启SMTP协议。

使用邮箱的授权码。

以q邮箱为例,我们可以去邮箱设置里面看一下是否开启了SMTP协议。

在设置里面找到账户,然后往下找。

Python用代码实现发送邮件_第1张图片

找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。

我们只要开启第一个POP3/SMTP服务就可以了,如果没有开启这个服务需要验证手机号开启一下,得到授权码。

已经开启过的可以点击生成授权码,验证一下就可以得到授权码。

把这个授权码保存起来。

Python用代码实现发送邮件_第2张图片

既然邮箱搞定了我就直接上代码吧。

代码如下:

# 简单邮件传输协议
import smtplib
import email
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
# 设置邮箱的域名
HOST = 'smtp.qq.com'
# 设置邮件标题
SUBJECT = 'csdn博客代码'
# 设置发件人邮箱
FROM = '发件人邮箱@qq.com'
# 设置收件人邮箱
TO = '邮箱[email protected],邮箱[email protected]'
message = MIMEMultipart('related')

#--------------------------------------发送文本-----------------
# 发送邮件主体到对方的邮箱中
message_html = MIMEText('

CSDN博客超级好

','html','utf-8') message.attach(message_html) #-------------------------------------发送图片-------------------- # rb 读取二进制文件 # 要确定当前目录有1.jpg这个文件 image_data = open('1.jpg','rb') # 设置读取获取的二进制数据 message_image = MIMEImage(image_data.read()) # 关闭刚才打开的文件 image_data.close() message_image.add_header('Content-ID','big') # 添加图片文件到邮件信息当中去 # message.attach(message_image) #-------------------------------------添加文件--------------------- # 要确定当前目录有table.xls这个文件 message_xlsx = MIMEText(open('table.xls','rb').read(),'base64','utf-8') # 设置文件在附件当中的名字 message_xlsx['Content-Disposition'] = 'attachment;filename="test1111.xlsx"' message.attach(message_xlsx) # 设置邮件发件人 message['From'] = FROM # 设置邮件收件人 message['To'] = TO # 设置邮件标题 message['Subject'] = SUBJECT # 获取简单邮件传输协议的证书 email_client = smtplib.SMTP_SSL() # 设置发件人邮箱的域名和端口,端口为465 email_client.connect(HOST,'465') # ---------------------------邮箱授权码------------------------------ result = email_client.login(FROM,'邮箱授权码') print('登录结果',result) email_client.sendmail(from_addr=FROM,to_addrs=TO.split(','),msg=message.as_string()) # 关闭邮件发送客户端 email_client.close()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Python)