Django——发送邮件

在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(‘邮件已发送‘)

原文地址:https://www.cnblogs.com/lymlike/p/11568522.html

时间: 2024-10-06 00:08:46

Django——发送邮件的相关文章

Django 发送邮件

Django 发送邮件 本章节涉及django的发邮件模块send_mail.send_mass_mail.EmailMultiAlternatives from django.core.mail import send_mail from django.core.mail import send_mass_mail from django.core.mail import EmailMultiAlternatives 1. 配置相关参数 如果用的是 163的企业邮箱,settings配置类似于

django发送邮件的坑

django发送邮件的坑 配置django发邮件的时候本地发送时好好的,但是放到阿里云的服务器上却不能发送. 经过一系列的排查后终于发现是阿里云把25端口给封了. 后来改用smtps的方式发送,更改django的setting的邮件配置 1 EMAIL_PORT = 465 2 3 4 5 6 EMAIL_USE_SSL = True 将端口改为465 增加配置项: EMAIL_USE_SSL = True 到阿里云控制台开放465端口 重新运行django和celery 原文地址:https:

django 发送邮件的两个问题

基本配置 参考django doc中的文档:发送邮件 配置如下,settings中配置: EMAIL_HOST = 'smtp.163.com' EMAIL_PORT = '25' EMAIL_HOST_USER = '[email protected]' EMAIL_HOST_PASSWORD = '******' # 填密码 然后调用send_mail发送邮件即可 subject = u'号码通激活' print name message = u'用户:' + name + u' 您好,首先

Django发送邮件及邮件激活

根据前端请求头中传入的JWT token的信息,使用DRF中追加的JWT认证判断是否登录 axios.get(this.host + '/user/', { // 向后端传递JWT token的方法 headers: { 'Authorization': 'JWT ' + this.token }, responseType: 'json', }) 在settins配置文件中添加配置DRF的JWT # 配置DRF REST_FRAMEWORK = { # 异常处理 'EXCEPTION_HAND

django发送邮件

在Python中已经内置了一个smtp邮件发送模块,Django在此基础上进行了简单地封装,让我们在Django环境中可以更方便更灵活的发送邮件. 所有的功能都在django.core.mail中. 一.快速上手 两行就可以搞定一封邮件: from django.core.mail import send_mail send_mail( 'Subject here', 'Here is the message.', '[email protected]', ['[email protected]

Django发送邮件方法

在Django中将渲染后的模板进行邮件发送,可以使用send_email方法 首先在settings.py中添加如下配置 # 邮件配置SSL加密方式 EMAIL_HOST = 'smtp.qq.com' EMAIL_PORT = 465 # 使用SSL加密方式端口为465 EMAIL_HOST_USER = '[email protected]' EMAIL_HOST_PASSWORD = 'pwd' EMAIL_USE_SSL = True # 使用SSL加密方式 EMAIL_FROM = '

django 发送邮件功能

setting.py 1 # 邮件配置 2 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 3 EMAIL_HOST = 'smtp.exmail.qq.com' # 发送邮件的服务器地址 4 EMAIL_HOST_USER = '[email protected]' # 不含‘@126.com’的后缀 5 EMAIL_HOST_PASSWORD = '' # 非邮箱登录密码 6 EMAIL_PORT = 25 7 EM

django发送邮件配置

配置如下,settings中配置: EMAIL_HOST = 'smtp.163.com' EMAIL_PORT = '25' EMAIL_HOST_USER = '[email protected]' EMAIL_HOST_PASSWORD = '******' # 填密码 然后调用send_mail发送邮件即可 subject = u'号码通激活' print name message = u'用户:' + name + u' 您好,首先非常感谢你的注册' + u"\n点击链接就可以激活邮箱

使用django发送邮件时的连接超时问题解决

一.报错 研究报错半天,没看出代码有什么毛病,就是发送邮件时连接超时,发送邮件的连接用户名密码都没有错误,于是就网上各种查... 终于皇天不负有心人,找到答案了.. 在服务器上输入telnet smtp.mxhichina.com 25,果然跟上述结果不一样,是这样的:Trying 205.204.101.152..., 于是,网上查找资料,端口号25时禁用的,如果你发的邮件时安全连接就用465端口号,否则80就可以了! 原文地址:https://www.cnblogs.com/zhangnin