python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件

Posted 整合侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件相关的知识,希望对你有一定的参考价值。

python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件

使用qq的邮件服务器需要注意的两个地方主要是:

1.协议问题 使用465端口 SSL 协议

2.口令问题 出现SMTPAuthenticationError 主要的原因就是口令和帐号信息不对,这里我们使用qq服务器发送 需要先到邮箱里设置独立密码(必须), 然后开启

   SMTP/POP3服务。然后用qq手机安全中心扫一扫会给一个授权码, 在代码中要填写的密码是这个授权码, 而不是邮箱密码!

示例代码:

# python3
# author:lizm
# date:2018-07-18 10:00:00 
# -*- coding: utf-8 -*-
‘‘‘
    description:登录qq邮箱发送邮件
‘‘‘
from smtplib import SMTP_SSL
from email.header import Header
from email.mime.text import MIMEText

#邮件定义
mail_info = {
    "from": "******@qq.com",
    "to": "******@qq.com",
    "hostname": "smtp.qq.com",
    "username": "******@qq.com",
    "password": "*******",
    "mail_subject": "test",
    "mail_text": "hello, this is a test email, sended by py",
    "mail_encoding": "utf-8"
}

if __name__ == __main__:
    #使用SMTP_SSL就是默认使用465端口
    smtp = SMTP_SSL(mail_info["hostname"])
    #set_debuglevel()是用来调试的。参数值为1表示开启调试模式,参数值为0关闭调试模式
    smtp.set_debuglevel(1)
    
    #连接服务器
    smtp.ehlo(mail_info["hostname"])
    #邮箱登录
    smtp.login(mail_info["username"], mail_info["password"])

    #填写正文内容
    msg = MIMEText(mail_info["mail_text"], "plain", mail_info["mail_encoding"])
    #填写邮件标题
    msg["Subject"] = Header(mail_info["mail_subject"], mail_info["mail_encoding"])
    #发送者邮箱地址
    msg["from"] = mail_info["from"]
    #接收者邮件地址
    msg["to"] = mail_info["to"]
    #发送邮件
    smtp.sendmail(mail_info["from"], mail_info["to"], msg.as_string())
    #退出
    smtp.quit()

 

以上是关于python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

python内建模块:smtplib

python3 发邮件 smtplib & email 库

Python3 使用smtplib和email模块发送邮件

在 Python3 中使用 smtplib 发送多部分电子邮件,但未显示第二部分

python 3 smtplib:当gnupg处于活动状态时,二进制附件在烧瓶中编码不正确

python 3 smtplib 异常:“SSL:WRONG_VERSION_NUMBER”登录到 Outlook