用python通过139邮箱发送Email

1.注册139邮箱,在设置中开启邮箱协议设置,如图所示:

用python通过139邮箱发送Email

2.编写代码。本人在anaconda的jupyter notebook中测试成功。代码如下:

# -*- coding: UTF-8 -*-
#无法成功,需要第三代申请密码保护 
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
 
my_sender='[email protected]'    # 发件人邮箱账号
my_pass = 'yourpassword'              # 发件人邮箱密码
my_user='[email protected]'      # 收件人邮箱账号,我这边发送给自己
def mail():
    ret=True
    try:
        msg=MIMEText('填写邮件内容','plain','utf-8')
        msg['From']=formataddr(["From",my_sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号
        msg['To']=formataddr(["To",my_user])              # 括号里的对应收件人邮箱昵称、收件人邮箱账号
        msg['Subject']="菜鸟教程"                # 邮件的主题,也可以说是标题
 
        server=smtplib.SMTP("smtp.139.com", 25)  # 发件人邮箱中的SMTP服务器,端口是25
        server.login(my_sender, my_pass)  # 括号中对应的是发件人邮箱账号、邮箱密码
        server.sendmail(my_sender,[my_user,],msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
        server.quit()  # 关闭连接
    except Exception:  # 如果 try 中的语句没有执行,则会执行下面的 ret=False
        ret=False
    return ret
 
ret=mail()
if ret:
    print("邮件发送成功")
else:
    print("邮件发送失败")

希望能帮到有需要的朋友。