加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Django——发送邮件

发布时间:2020-12-20 10:37:01 所属栏目:Python 来源:网络整理
导读:在Python中已经内置了一个smtp邮件发送模块,Django在此基础上进行了简单地封装,让我们在Django环境中可以更方便更灵活的发送邮件。 所有的功能都在django.core.mail中。 记录一个简单的示例 ?1.配置 首先获取邮箱的授权码(以新浪邮箱为例) ? ? ? ? ? ? ?

在Python中已经内置了一个smtp邮件发送模块,Django在此基础上进行了简单地封装,让我们在Django环境中可以更方便更灵活的发送邮件。

所有的功能都在django.core.mail中。

记录一个简单的示例

?1.配置

首先获取邮箱的授权码(以新浪邮箱为例)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

然后是settings.py的配置

EMAIL_BACKEND = django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST = smtp.sina.com      # 中间的“sina”改为你用的邮箱服务
EMAIL_PORT = 465
EMAIL_HOST_USER = 邮箱账号
EMAIL_HOST_PASSWORD = 授权码
EMAIL_USE_SSL = True
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
"""EMAIL_USE_TLS和EMAIL_USE_SSL都默认设置为False,需要配置其中一个为True,但是不能两个都设置为True。 一般端口587对应TLS,端口465对应SSL(加强TSL)"""

?

2.路由

from django.urls import path
from email import views

urlpatterns = [
    path(admin/,admin.site.urls),path(send_email/,views.send_email)
]

?

3.视图

from myemail import settings
from django.core.mail import EmailMultiAlternatives    # 这个可以发送HTML,如果只发送文本,导入send_mail即可


def send_email(request):
    subject = 测试邮件    # 邮件主题
    from_email =  settings.EMAIL_HOST_USER     # 发件的邮箱
    to = [email?protected]    # 收件的邮箱
    text_content = 如果你看到这条消息,说明你的邮箱服务器不提供HTML链接功能      # 如果目标邮箱不能接受html时的替换内容
    html_content = "<a href=‘http://www.baidu.com‘>搜索一下</a>"       # html邮件内容
    msg =  EmailMultiAlternatives(subject,text_content,from_email,[to])
    msg.attach_alternative(html_content,text/html)     # 给邮件绑定html内容
    mag.send()
    return HttpResponse(邮件已发送)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读