用Django 发送邮件的方法

新建一个项目,在templates 文件里新建一个index.html 文件,并设置setting.py 文件
在index.html 文件里进行如下配置,作为发送邮件的准备

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/send/" method="POST">
    {% csrf_token%}
    <button type="submit">发送邮件</button>
</form>
</body>
</html>

因为action 还没有设置,所有这里点击 发送邮件, 会出错
这里写图片描述
1, 首先在settings.py 文件后面加上下面的代码

STATIC_URL = '/static/'
# 设置邮件域名 
EMAIL_HOST = 'smtp.163.com'
# 设置端口号,为数字
EMAIL_PORT = 25
#设置发件人邮箱
EMAIL_HOST_USER = 'qiqi1931@163.com'
# 设置发件人 授权码
EMAIL_HOST_PASSWORD = '自己的授权码'
# 设置是否启用安全链接
EMAIL_USER_TLS = True

# 以上这个配置信息,Django会自动读取,
# 使用账号以及授权码进行登录,
# 如果登录成功,可以发送邮件

然后回到views.py 文件,加入以下代码

from django.shortcuts import render
from django.http import HttpResponse
# 引入发送邮件的模块
from django.core.mail import send_mail, send_mass_mail, EmailMultiAlternatives

from django.conf import settings

def sendEmail(request):
    return render(request, 'index.html')


def send_email(request):
    if request.method == 'POST':
        # 值1:  邮件标题   值2: 邮件主体
        # 值3: 发件人      值4: 收件人
        res = send_mail('关于中秋节放假通知',
                        '中秋节放三天假',
                        'qiqi1931@163.com',
                        ['qiqi1931@163.com'])
        if res == 1:
            return HttpResponse('邮件发送成功')
        else:
            return HttpResponse('邮件发送失败')
    else:
        return render(request, 'index.html')

运行该程序,在index.html 页面中,点击发送邮件可以看到,发送成功
这里写图片描述

发送html 文件
首先在html 的文件里定义函数:

def send_html(request):
    html_message = '<a href="http://www.baidu.com">百度</a>'
    res = EmailMultiAlternatives('关于对点击事件的安排',
                    '请点击下面的链接:' + html_message,
                    'qiqi1931@163.com',
                    ['891811395@qq.com','819614513@qq.com',  'qiqi1931@163.com',])
    res.content_subtype = 'html'
    result = res.send()
    return HttpResponse(result)

然后在views.py 文件里进行配置
这里写图片描述
再在index.html 文件里进行配置
这里写图片描述
刷新浏览器页面, 点击发送, 可以看到提示发送成功
多封给多个人进行发送
同上,修改view.py 里的代码, urls.py里的代码, index.py 文件里的代码,注意三者之间的关系

# def send_mass_email(request):
#     message1 = ('这个周日你有空吗',
#                 '孔子东游见两小儿便日',
#                 'qiqi1931@163.com',
#                 ['891811395@qq.com', '819614513@qq.com'])
#
#     message2 = ('这个周 日你有空吗?',
#                 '孔子东游,见两小儿,便日',
#                 'qiqi1931@163.com',
#                 ['891811395@qq.com', '1311173658@qq.com'])
#     res = send_mass_email((message1, message2))
#     if res == 2:
#         return HttpResponse('多封邮件发送成功')
#     else:
#         return HttpResponse('多封邮件发送失败')

关系如下图:
这里写图片描述

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值