新建一个项目,在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('多封邮件发送失败')
关系如下图: