发送邮件需要用到smtplib模块,用于实现SMTP协议

标准库还提供了email模块来帮助我们构造邮件格式

smtp是一组由源地址到目的地址传送邮件的规则,用于控制信件的中转方式。python的smtplib提供了一种发送电子邮件的方便途径,它对smtp协议进行了简单的封装。

创建smtp对象的语法为:

smtpObj = smtplib.SMTP([host [, port [, local_hostname]]])

参数说明:

host:SMTP主机,是可选参数。可以指定主机的ip地址或者域名。

port:如果你提供了host参数,那就需要指定smtp服务使用的端口号,一般情况下端口号为25,SSL加密则是465

local_hostname: 如果smtp在本机上,那就只需要指定服务器的地址为localhost接口。

使用smtp对象的sendmail方法来发送邮件,语法如下

SMTP.sendmail(from_address, to_address, msg[, mail_options, rcpt_options]

参数说明:

from_address:邮件发送者地址

to_address:字符串列表,邮件发送地址

msg:发送消息,一般使用字符串

举个例子,

代码里面的那个邮箱用户名和密码大家就自己去QQ邮箱那里开通smtp服务并且自己设置那个发送服务器地址吧。用自己的账号密码。

import smtplib
from email.mime.text import MIMEText
from email.header import Header


sender = 'xxx@qq.com'
password = 'xxxxx'
#收件人无论是否只有一个收件人都必须是列表
receiver = ['re@qq.com', ]
#邮件正文
message = MIMEText('使用Python发送邮件', 'plain', 'utf-8')
#发件人显示的名字
message['From'] = Header('Python邮件', 'utf-8')
#收件人显示的名字
message['To'] = Header('邮件', 'utf-8')
#邮件标题
message['Subject'] = 'Python SMTP 发送邮件'

try:
    #使用qq企业邮箱服务器发送
    smtp = smtplib.SMTP_SSL('smtp.qiye.aliyun.com', 465)#自己修改这里
    #登录
    smtp.login(sender, password)
    smtp.sendmail(sender, receiver, message.as_string())
    print('邮件已发送!')
except smtplib.SMTPException as e:
    x = e.args[1]
    a = x.decode('gbk')
    print('发送失败!', a)

至此,邮件发送就完成啦

你也可能喜欢

发表评论