zoukankan      html  css  js  c++  java
  • Django发送邮件

    1. 配置相关参数

    如果用的是 阿里云的企业邮箱,则类似于下面:

    在 settings.py 的最后面加上这些


    EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'
    EMAIL_USE_TLS = False
    EMAIL_HOST='smtp.163.com'
    EMAIL_PORT='25'
    EMAIL_HOST_USER='2222@163.com'
    EMAIL_HOST_PASSWORD='**' 这里密码不是邮箱密码,是STMP申请密码,在邮箱里面可以设置,开通就可以设置密码
    DEFAULT_FROM_EMAIL='2222@163.com'


    2. 发送邮件:

    2.1 官网的一个例子:(试过,不行)

    1
    2
    3
    4
    from django.core.mail import send_mail
     
    send_mail('Subject here''Here is the message.''from@example.com',
        ['to@example.com'], fail_silently=False)

    2.2 一次性发送多个邮件:(试过,不行)

    1
    2
    3
    4
    5
    6
    7
    8
    from django.core.mail import send_mass_mail
     
     
    message1 = ('Subject here''Here is the message''from@example.com', ['first@example.com''other@example.com'])
    message2 = ('Another Subject''Here is another message''from@example.com', ['second@test.com'])
     
     
    send_mass_mail((message1, message2), fail_silently=False)

    备注:send_mail 每次发邮件都会建立一个连接,发多封邮件时建立多个连接。而 send_mass_mail 是建立单个连接发送多封邮件,所以一次性发送多封邮件时 send_mass_mail 要优于 send_mail。


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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    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 版本的(好像好多国外发的邮件都是纯文本的)只有这个可以

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    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()

    上面代码打在app的views文件中,然后在project的urls中打下面的:
    url(r'^$',emailapp_views.sent)
    运行manage.py runserver 2000  浏览器打开才可以发送,如果直接运行views会一直提示电脑没有连接成功

  • 相关阅读:
    【RDB】MariaDB 之事务、复制、集群
    【中间件】Redis 实战之主从复制、高可用、分布式
    React从入门到放弃(5):ReactRouter4
    React从入门到放弃(4):Redux中间件
    React从入门到放弃(3):Redux简介
    React从入门到放弃(2):React简介
    React从入门到放弃(1):webpack4简介
    【.NET Core】ASP.NET Core之IdentityServer4(1):快速入门
    【.NET Core】Docker Jenkins ASP.NET Core自动化部署
    【ASP.NET Core】运行原理(4):授权
  • 原文地址:https://www.cnblogs.com/laochake/p/6090966.html
Copyright © 2011-2022 走看看