zoukankan      html  css  js  c++  java
  • 十九 Django框架,发送邮件

    全局配置settings.py

    复制代码
    EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'   #发送邮件引擎
    
    EMAIL_USE_TLS = False                               #是否以https方式
    EMAIL_HOST = 'smtp.163.com'                         #邮件smtp服务器
    EMAIL_PORT = 25                                     #端口
    EMAIL_HOST_USER = '15284816568@163.com'             #发件人
    EMAIL_HOST_PASSWORD = 'adc279818'                   #发件人密码
    DEFAULT_FROM_EMAIL = '玉秀文化 <15284816568@163.com>'  #收件人显示的发件人信息
    复制代码

    send_mail() 每次发邮件都会建立一个连接,发多封邮件时建立多个连接

        from django.core.mail import send_mail
    
        send_mail('主题', '内容', '玉秀文化 <15284816568@163.com>',['729088188@qq.com'], fail_silently=False)

    send_mass_mail() 是建立单个连接发送多封邮件,所以一次性发送多封邮件时 send_mass_mail 要优于 send_mail。

    复制代码
        from django.core.mail import send_mass_mail
    
        message1 = ('主题', '内容', '玉秀文化 <15284816568@163.com>', ['729088188@qq.com', '244831604@qq.com'])
        message2 = ('主题', '内容', '玉秀文化 <15284816568@163.com>', ['729088188@qq.com'])
    
        a = send_mass_mail((message1,message2), fail_silently=False)
        print(a)
    复制代码

    如果我们想在邮件中添加附件,发送 html 格式的内容

    复制代码
    from django.conf import settings
    from django.core.mail import EmailMultiAlternatives
     
     
    from_email = settings.DEFAULT_FROM_EMAIL
    # subject 主题 content 内容 to_addr 是一个列表,发送给哪些人
    msg = EmailMultiAlternatives(subject, content, from_email, [to_addr])
     
    msg.content_subtype = "html"
     
    # 添加附件(可选)
    msg.attach_file('./twz.pdf')
     
    # 发送
    msg.send()
    复制代码

    上面的做法可能有一些风险,除非你确信你的接收者都可以阅读 html 格式的 邮件。

    为安全起见,你可以弄两个版本,一个纯文本(text/plain)的为默认的,另外再提供一个 html 版本的(好像好多国外发的邮件都是纯文本的)

    复制代码
    from __future__ import unicode_literals
     
    from django.conf import settings
    from django.core.mail import EmailMultiAlternatives
     
    subject = '来自自强学堂的问候'
     
    text_content = '这是一封重要的邮件.'
     
    html_content = '<p>这是一封<strong>重要的</strong>邮件.</p>'
     
    msg = EmailMultiAlternatives(subject, text_content, from_email, [to@youemail.com])
     
    msg.attach_alternative(html_content, "text/html")
     
    msg.send()
    复制代码
  • 相关阅读:
    如何在Elasticsearch中解析未分配的分片(unassigned shards)
    spark-streaming获取kafka数据的两种方式
    hbase读写优化
    手动修复 under-replicated blocks in HDFS
    kubectl常用命令(个人记录)
    mysql远程访问被拒绝问题
    海盗分金问题
    《转》基于OpenCV的傅里叶变换及逆变换
    char*,string和CString之间的转换
    commons-fileupload 核心API 分析
  • 原文地址:https://www.cnblogs.com/meng-wei-zhi/p/8183255.html
Copyright © 2011-2022 走看看