美文网首页python
python3使用smtplib通过qq邮箱发送邮件

python3使用smtplib通过qq邮箱发送邮件

作者: 关爱单身狗成长协会 | 来源:发表于2017-04-10 14:20 被阅读1406次

    详细代码参考说明:Python3 SMTP发送邮件

    0.了解qq邮箱的SMTP

    QQ邮箱 POP3 和 SMTP 服务器地址设置如下:

    邮箱 POP3服务器(端口995) SMTP服务器(端口465或587)
    qq.com pop.qq.com smtp.qq.com

    SMTP服务器需要身份验证。

    1.开启qq邮箱的smtp服务

    如何打开POP3/SMTP/IMAP功能?

    为了保障用户邮箱的安全,QQ邮箱设置了POP3/SMTP/IMAP的开关。系统缺省设置是“关闭”,在用户需要这些功能时请“开启”。 首先,登录邮箱,进入设置-帐户;


    然后,在“帐户”设置中,找到设置项,进行设置,如下:


    最后,保存设置,即打开了相应的服务。

    2.代码

    import smtplib
    from email.mime.text import MIMEText
    from email.utils import formataddr
     
    my_sender='XXXXXXX@qq.com'    # 发件人邮箱账号
    my_pass = 'xxxxxxxxxxxx'              # 发件人邮箱密码(当时申请smtp给的口令)
    my_user='xxxxxx@xx.com'      # 收件人邮箱账号,我这边发送给自己
    def mail():
        ret=True
        try:
            msg=MIMEText('填写邮件内容','plain','utf-8')
            msg['From']=formataddr(["发件人昵称",my_sender])  # 括号里的对应发件人邮箱昵称、发件人邮箱账号
            msg['To']=formataddr(["收件人昵称",my_user])              # 括号里的对应收件人邮箱昵称、收件人邮箱账号
            msg['Subject']="邮件主题-测试"                # 邮件的主题,也可以说是标题
     
            server=smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器,端口是465
            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("邮件发送失败")
    

    注意:如果收件人地址错误,但代码还是会提示"邮件发送成功",如果是地址错误在qq邮箱中会收到"来自qq.com的退信"

    3.效果

    发送成功


    发送

    如果在一般邮件中没看到,可以在垃圾邮件中查看


    接收

    相关文章

      网友评论

        本文标题:python3使用smtplib通过qq邮箱发送邮件

        本文链接:https://www.haomeiwen.com/subject/fvpsattx.html