• Django 配置 qq 邮箱发送邮件



    一、实验环境

    Python3.7 + Django2.1.3

    二、获取QQ邮箱授权码

    1、什么是授权码?

    授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码。

    适用于登录以下服务:POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。

    温馨提醒:为了你的帐户安全,更改QQ密码以及独立密码会触发授权码过期,需要重新获取新的授权码登录。

    2、怎么获取授权码?

    操作: 设置 ---> 帐户 ,按照以下流程操作。

    (1)点击“生成授权码”

    (2)验证密保

    (3)获取授权码

    三、Django中配置

    setting.py中添加如下代码

    # Host for sending email.
    EMAIL_HOST = 'smtp.qq.com'                 # 发送方的smtp服务器地址
    
    # Port for sending email.
    EMAIL_PORT = 587                           # smtp服务端口
    
    # Optional SMTP authentication information for EMAIL_HOST.
    EMAIL_HOST_USER = 'you email@qq.com'       # 发送方 邮箱地址
    EMAIL_HOST_PASSWORD = 'uzlbagwxizkfcfdf'   # 获得的  授权码
    EMAIL_USE_TLS = True                       # 必须为True
    EMAIL_USE_SSL = False
    EMAIL_SSL_CERTFILE = None
    EMAIL_SSL_KEYFILE = None
    EMAIL_TIMEOUT = None
    
    # Default email address to use for various automated correspondence from
    # the site managers.
    DEFAULT_FROM_EMAIL = 'you email@qq.com'  # 和 EMAIL_HOST_USER  相同
    
    
    • 注意:
      • 不添加授权码 报 SMTPAuthenticationError 错误 ,

    文本邮件

    send_email.py 代码如下:

    import os
    from django.core.mail import send_mail
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'suosuo.settings'   #  必须添加 , 依赖于 Django 
    
    if __name__ == '__main__':
    
        res = send_mail(
            '来自www.liujiangblog.com的测试邮件',
            '欢迎访问www.cnblogs.com/shiwei1930,这里是SUOSUO博客站点,本站专注于Python、Django技术的分享!',
            'you email@qq.com',   
            ['target email@aliyun.com'],
        ) 
        print('res=', res)   #  成功 返回  1
    
    # 对于send_mail方法,
    #    第一个参数是邮件主题subject;
    #    第二个参数是邮件具体内容;
    #    第三个参数是邮件发送方,
    #    第四个参数是接受方的邮件地址列表, 需要和你settings中的一致;
    

    HTML 邮件

    send_email.py 代码如下:

    import os
    from django.core.mail import EmailMultiAlternatives
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'suosuo.settings'
    
    if __name__ == '__main__':
    
        subject = '来自www.cnblogs.com/shiwei1930的测试邮件'
        from_email=  'you email@qq.com'
        to = ['target email@aliyun.com']
        text_content = '欢迎访问www.cnblogs.com/shiwei1930,这里是SUOSUO站点,专注于Python和Django技术的分享!'
        html_content = '<p>欢迎访问<a href="http://www.cnblogs.com/shiwei1930" target=blank>www.cnblogs.com/shiwei1930</a>,这里是SUOSUO站点,本站专注于Python、Django的分享!</p>'
        msg = EmailMultiAlternatives(subject, text_content, from_email, to)
        msg.attach_alternative(html_content, "text/html")
        msg.send()
       
    # 其中的text_content是用于当HTML内容无效时的替代txt文本。
    
  • 相关阅读:
    PHP操作目录(文件夹)的常用函数
    PHP处理时间的常用函数
    PHP操作文件的常用函
    PHP处理数组的常用函数
    PHP处理字符串的常用函数
    什么是 CGI?什么是 FastCGI?php-fpm,FastCGI,Nginx 之间是什么关系?
    一天一个 Linux 命令(18):ln 命令
    IntelliJ IDEA get set 快捷键
    mysql的一些问题记录
    数据库的乐观锁和悲观锁是什么?怎么实现的?
  • 原文地址:https://www.cnblogs.com/shiwei1930/p/11747719.html
Copyright © 2020-2023  润新知