【python】smtp发送邮件(账号密码+账号授权码说明)

【python】smtp发送邮件(账号密码+账号授权码说明)

0 安装库+引用库

安装代码

pip install PyEmail

引用库

import smtplib

from email.mime.text import MIMEText

from email.header import Header

1 单接收者

# 第三方 SMTP 服务

mail_host="smtp服务器地址" #设置服务器

mail_user="xxx@xxx.com" #用户名

mail_pass="xxx" #密码、授权码

sender = 'xxx@xxx.com' #发送邮箱

receivers = ['yyy@yyy.com'] #接收邮箱

#邮件主题,邮件内容

def send_mail(title,message):

# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码

message = MIMEText(message, 'plain', 'utf-8')

message['From'] = Header('xxx@xxx.com', 'utf-8') # 发送者

message['To'] = Header('yyy@yyy.com', 'utf-8') # 接收者

message['Subject'] = Header(title, 'utf-8')

smtpObj = smtplib.SMTP_SSL(mail_host, 465)

smtpObj.login(mail_user,mail_pass)

smtpObj.sendmail(sender, receivers, message.as_string())

send_mail('【测试】邮件发送测试','邮件发送测试')

2 多接收者

# 第三方 SMTP 服务

mail_host="smtp服务器地址" #设置服务器

mail_user="xxx@xxx.com" #用户名

mail_pass="xxx" #密码、授权码

sender = 'xxx@xxx.com' #发送邮箱

receivers = ['yyy@yyy.com','zzz@zzz.com'] #接收邮箱

#邮件主题,邮件内容

def send_mail(title,message):

# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码

message = MIMEText(message, 'plain', 'utf-8')

message['From'] = Header('xxx@xxx.com', 'utf-8') # 发送者

message['To'] = Header('yyy@yyy.com, zzz@zzz.com', 'utf-8') # 接收者

message['Subject'] = Header(title, 'utf-8')

smtpObj = smtplib.SMTP_SSL(mail_host, 465)

smtpObj.login(mail_user,mail_pass)

smtpObj.sendmail(sender, receivers, message.as_string())

send_mail('【测试】邮件发送测试','邮件发送测试')

3 说明

3.1 密码?授权码?

根据smtp服务器的要求,login中的mail_pass可能是账号密码,也可能是smtp授权码。

smtp授权码需要在邮件客户端,用户绑定手机号码自行开启。

例如:

smtp.163.com 要求 授权码

smtp.qiye.163.com 要求 账号对应密码

3.2 smtp端口

以163邮箱为例:163免费邮客户端设置的POP3、SMTP、IMAP地址

465、994端口号使用SSL协议,需要调用 smtplib.SMTP_SSL(mail_host, 465)

25端口号使用非SSL协议,需要调用 smtpObj = smtplib.SMTP() smtpObj.connect(mail_host, 25)

SSL加密,保密性高

相关推荐

【亲子游戏】50种简单又好玩的幼儿园游戏,让孩子忘掉手机和电视!
从140公里/小时到600公里/小时,中国高铁到底有多快?
赛尔号盖亚超进化攻略
365账号无法登陆

赛尔号盖亚超进化攻略

📅 07-09 👁️ 1420