zoukankan      html  css  js  c++  java
  • django实现发送邮件

    一、发送普通文本邮件

    1、settings.py中的设置

    # 发送邮件
    # 发送邮件设置
    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_USE_TLS = False   # 是否使用TLS安全传输协议
    EMAIL_USE_SSL = True    # 是否使用SSL加密,qq企业邮箱要求使用
    # SMTP地址
    EMAIL_HOST = 'smtp.qq.com'
    # SMTP端口
    EMAIL_PORT = 465
    # 自己的邮箱
    EMAIL_HOST_USER = '776265xxxx@qq.com'
    # 自己的邮箱授权码,非密码
    EMAIL_HOST_PASSWORD = 'qvsvaxxxxxxxxx'
    EMAIL_SUBJECT_PREFIX = '[迎风而来的博客]'

    2、视图函数实现发送文本

    from django.shortcuts import render, HttpResponse
    from django.core.mail import send_mail
    
    
    def send_email(request):
        """
        发送邮件
        :param request:
        :return:
        """
        send_mail(subject='发送邮件的标题',
                  message='发送邮件的内容',
                  from_email='776265233@qq.com',  #发送者邮箱
                  recipient_list=['1971956593@qq.com'], # 接收者邮箱可以写多个
                  fail_silently=False)
        return HttpResponse('邮件发送成功')

    二、发送带有附件的邮件

    1、settings.py中的设置

    # 发送邮件
    # 发送邮件设置
    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
    EMAIL_USE_TLS = False   # 是否使用TLS安全传输协议
    EMAIL_USE_SSL = True    # 是否使用SSL加密,qq企业邮箱要求使用
    # SMTP地址
    EMAIL_HOST = 'smtp.qq.com'
    # SMTP端口
    EMAIL_PORT = 465
    # 自己的邮箱
    EMAIL_HOST_USER = '776265xxxx@qq.com'
    # 自己的邮箱授权码,非密码
    EMAIL_HOST_PASSWORD = 'qvsvabxxxxxxxxxx'
    EMAIL_SUBJECT_PREFIX = '[迎风而来的博客]'

    2、视图函数实现发送附件

    import os
    from django.conf import settings
    from django.core.mail import EmailMultiAlternatives
    from email.header import make_header
    
    
    def send_accessory_email(request):
        subject = '报告邮件'  # 邮件主题
        text_content = '这是一封重要的报告邮件.'  # 邮件文本内容
        html_content = '<p>这是一封<strong>重要的报告邮件</strong>.</p>'  # 邮件主题内容样式
        from_email = settings.EMAIL_HOST_USER    # 发送者邮箱
        receive_email_addr = ["19719xxxxxx@qq.com"]  # 接收者邮箱可以写多个
        msg = EmailMultiAlternatives(subject, text_content, from_email, receive_email_addr)
        msg.attach_alternative(html_content, "text/html")
        # 发送附件
        file_path = r"C:文件附件.xlsx"   # 发送附件的文件路径
        text = open(file_path, 'rb').read()
        file_name = os.path.basename(file_path)
        # 对文件进行编码处理
        b = make_header([(file_name, 'utf-8')]).encode('utf-8')
        msg.attach(b, text)   # 传入文件名和附件
        msg.send()
        if msg.send():
            return HttpResponse('邮件发送成功')
        else:
            return HttpResponse('邮件发送成功')
  • 相关阅读:
    动态规划 最长公共子序列 LCS,最长单独递增子序列,最长公共子串
    梳排序(Comb sort)
    地精排序(Gnome Sort) 算法
    vs2010 调试 调用堆栈 窗口
    vs2010 条件断点 has changed是什么意思?
    vs2010根据字符串内容添加断点
    vs2010 调试中监视变量
    vs2010断点使用技巧
    区间重合判断(pojg校门外的树)
    转:Linus:利用二级指针删除单向链表
  • 原文地址:https://www.cnblogs.com/sui776265233/p/13085123.html
Copyright © 2011-2022 走看看