如何用python发送SMTP邮件(基于QQ邮箱)亲测可用

  1. 第一步

首先我们要在QQ邮箱开通SMTP邮件,并生成授权码

设置->账户->生成授权码

通过绑定手机发送短信生成授权码,并保存授权码,一系列英文字母(等会要用)
如何用python发送SMTP邮件(基于QQ邮箱)亲测可用_第1张图片

  1. 第二步
    确保自己的计算机名称为全英文,查看方式:

控制面板-系统和安全-系统-计算机名

一定要是英文,如果是中文的话会报错的,具体报错信息如下:
‘utf-8’ codec can’t decode byte 0xba in position 0: invalid start byte
如果是中文的话要修改才行

  1. 第三步
    打开编译器,因为所需要的库一般都有,不需要再下载
  2. 第四步
    运行代码,代码如下:
# coding=utf-8
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
 
my_sender='***@qq.com'    # 发件人邮箱账号
my_pass = '*******'              # 发件人邮箱授权码,第一步得到的
my_user='*****@qq.com'      # 收件人邮箱账号,可以发送给自己
 
def mail():
    ret=True
    try:
        #msg=MIMEText('填写邮件内容','plain','utf-8')
        mail_msg = """
            

Python 邮件发送测试...

这是一个链接

""" msg = MIMEText(mail_msg, 'html', 'utf-8') msg['From']=formataddr(["FromRunoob",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号 msg['To']=formataddr(["FK",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号 msg['Subject']="测试邮件" # 邮件的主题,也可以说是标题 # 发件人邮箱中的SMTP服务器,端口是25 #server=smtplib.SMTP("smtp.qq.com", 25) ''' QQ邮箱使用下面这种方式才成功 ''' server=smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是465,固定的,不能更改 server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码 server.set_debuglevel(1) server.sendmail(my_sender,[my_user,],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件 server.quit() # 关闭连接 except Exception as err: # 如果 try 中的语句没有执行,则会执行下面的 ret=False print(err) ret=False return ret ret=mail() if ret: print("邮件发送成功") else: print("邮件发送失败")

亲测这个代码可用,有的版本的代码发邮件会出现:
由于目标计算机积极拒绝,无法连接
参考链接:菜鸟教程,其中的代码可能不能用
但是上面给出的就不会,O(∩_∩)O哈哈~

你可能感兴趣的:(邮件)