22-邮件发送

发布时间 2023-03-28 18:40:39作者: 测试圈的彭于晏

1. setting配置

# smtp服务的邮件服务器
EMAIL_HOST ='smtp.163.com'
#smtp服务固定的端口是25
EMAIL_PORT = 25
#发送邮件的邮箱
EMAIL_HOST_USER ='123@163.com'
#在邮箱中设置的客户端授权密码(自行百度查看怎么获取)
EMAIL_HOST_PASSWORD = 'ASDBDAK'
#收件人看到的发件人《此处要和发送邮件的邮箱相同>
EMAIL_FROM ='python<123@163.com>'

2. 发送邮件

# urls.py
app_name="App03"
urlpatterns = [
    path('send/', views.mail_send,name='send'), # 发送邮件
]
from django.core.mail import send_mail, send_mass_mail, EmailMultiAlternatives
from new.settings import EMAIL_HOST_USER
from django.template import loader
# 发送一封邮件
def mail_send(request):
    """发送邮件,一分钟发2-3封,次数多了报错"""
    # 参数:(邮件标题,内容,发件人,收件人)
    send_mail("测试发送邮件", "python freedom", EMAIL_HOST_USER,
              ['123@qq.com'])  # 可以添加多个邮箱账号
    return HttpResponse("发送一件邮件")
# 发送多封邮件
def mail_send(request):
    message1 = ('标题1', '内容1', EMAIL_HOST_USER, ['123@qq.com'])
    message2 = ('标题2', '内容2', EMAIL_HOST_USER, ['123@qq.com'])
    send_mass_mail((message1, message2), fail_silently=False)

    return HttpResponse("发送多封邮件")
# 渲染模板进行发送邮件
def mail_send(request):
    html_content = loader.get_template('active.html').render({"username": "快递"})
    msg = EmailMultiAlternatives('标题1', from_email=EMAIL_HOST_USER, to=['123@qq.com'])
    msg.attach_alternative(html_content, 'text/html')
    msg.send()
    return HttpResponse("渲染模板进行发送")
# active.html
<body>
<h2>{{ username }}你的账号未激活,请点击下面的链接激活账号</h2>
</body>