如何用python自动调用qq邮箱发送邮件详细说明(带图文和代码)

第一步:在qq邮箱里边开启POP3/SMTP服务和IMAP/SMTP服务

如何用python自动调用qq邮箱发送邮件详细说明(带图文和代码)_第1张图片

按照导航提示用密保手机号发一个验证短信会收到一个是授信码,保存下来,后边代码中会用到这个授权码。

第二步,到python中编写如下代码:

#导入需要用到的模块

import xlrd
import time
import xlsxwriter
from xlutils.copy import  copy 
from email.mime.multipart import  MIMEMultipart
from email.header import  Header
import smtplib
from email.mime.text import MIMEText

host = 'smtp.qq.com' #  qq邮箱服务器地址
port = 465 #   qq邮箱默认端口
user = '2***[email protected]'     #发件人邮箱号
password = 'eedfyodtipfgcage' # 发件账号授权码
sender = '2***[email protected] ' # 发件人邮箱号
receivers = ['[email protected] ']  # 创建收件人账号列表,可以和发件人邮箱一样
subject = 'Python邮件测试'    # 邮件标题
# MIMEText有三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
#message = MIMEText('Python 邮件发送测试', 'plain', 'utf-8')
try:
    message = MIMEText('Python 邮件发送测试', 'plain', 'utf-8')
    message['Subject'] = Header(subject, 'utf-8')
    #%%
    message['From'] = '2***[email protected] '    #发件人邮箱
    #%%
    message['To'] = ';'.join(receivers)      #引入收件人邮箱列表
      
    smtp_obj = smtplib.SMTP_SSL(host)

# 开启发信服务,加密传输。python3.7一定要填括号里边的“host”否则会保持会报错: #ValueError: server_hostname cannot be an empty string or start with a leading dot.


  
    smtp_obj.connect(host, port)  
    smtp_obj.login(user, password) # 登录邮箱
    smtp_obj.sendmail(sender, receivers, message.as_string()) #发送邮件
    print ("邮件发送成功")
except smtplib.SMTPException:
    print ("邮件发送失败")

执行成功如下提示:

如何用python自动调用qq邮箱发送邮件详细说明(带图文和代码)_第2张图片

也可以到邮箱查看是否收到了。

你可能感兴趣的:(python基础,python)