• Django_发送邮件


    使用django邮箱功能需要搭建smtp服务器,如果没有,可以使用第三方smtp服务器。

    本文以第三方QQ邮箱服务器演示如何使用python的smtplib+email完成邮箱发送功能。

    一、开启SMTP服务并获取授权码

    具体参考 email + smtplib使用简介

    二、在Django的配置文件中添加邮箱服务配置

    # 设置使用django的smtp配置(固定值)
    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    # smpt服务地址(根据选择smtp服务器配置)
    EMAIL_HOST = 'smtp.qq.com'
    # 邮箱端口(在django中是固定值)
    EMAIL_PORT = 25
    # 发送邮件的邮箱
    EMAIL_HOST_USER = '41XXXXX67@qq.com'
    # 在邮箱中设置的客户端授权密码(第一步获取的授权码)
    EMAIL_HOST_PASSWORD = 'spisXXXXXtbidj'
    # 邮箱中显示的发件人(必须与EMAIL_HOST_USER 的值一致)
    EMAIL_FROM = '41XXXXX67@qq.com'

    三、发送邮箱代码

    import os
    
    from dailyfresh import settings
    from django.core.mail import EmailMultiAlternatives
    
    # 导入配置django配置文件
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')
    
    subject = 'Django邮件调试'    # 邮件标题
    message = 'test'            # 发送内容
    sender = settings.EMAIL_FROM    # 发送人
    receiver = ["XXXX@qq.com"]  # 收件人
    cc_receiver = ["41XXXXX67@qq.com"]  # 抄送人
    
    _email = EmailMultiAlternatives(subject=subject, body=message, from_email=sender, to=receiver, cc=cc_receiver)
    # 添加html内容(注:如果添加了html内容,message的内容不会被发送)
    html_msg = "<div><h1>H1标签</h1></div><div><h3>H3标签</h3></div>"
    _email.attach_alternative(html_msg, "text/html")
    
    # 添加附件
    with open("./test.pdf", "rb") as f:
        content = f.read()
    attach_file_name = "attach_file1.pdf"    # 邮箱中显示的附件名称
    _email.attach(attach_file_name, content)
    # 添加多个附件,多次调用attach方法即可
    attach_file_name = "attach_file2.pdf"
    _email.attach(attach_file_name, content)
    
    # 发送邮件
    _email.send()

    接收邮件如下:

  • 相关阅读:
    Java中的泛型
    Java中List、Collections实现梭哈游戏
    Java中HashMap案例
    Java中ArrayDeque,栈与队列
    Java中List的使用
    学会使用JDK API
    Java中的数学运算BigDecimal
    在清华听演讲语录
    Java面向对象深度
    类变量、实参、形参、方法参数、代码块参数
  • 原文地址:https://www.cnblogs.com/testlearn/p/16197209.html
Copyright © 2020-2023  润新知