django 发邮件(mail)模块的简单使用
django自带的django.core.mail模块实现发邮件的功能
django自带了一个模块,可以实现发邮件的功能。如果项目开发遇到需要发邮件进行验证的时候可以用到。
1.先要准备发件人
发邮件需要使用SMTP。SMTP是什么呢?
简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):用于发送和中转发出的电子邮件,占用服务器的25/TCP端口。
图1
如果公司的规模大点,可能会搭建自己域名的邮箱,如果需要了解可以看下:https://www.linuxprobe.com/chapter-15.html,使用Postfix与Dovecot部署邮件系统。
常用的免费服务器有:163、126、QQ,这里以qq为例。qq开启SMTP服务可见:
开启完SMTP服务,就算准备好了发件人了。
2.Django配置文件中,设置有关邮件的配置信息
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.163.com' # SMTP服务器地址
EMAIL_PORT = 25
#发送邮件的邮箱
EMAIL_HOST_USER = 'xxxx@163.com'
#在邮箱中设置的客户端授权密码
EMAIL_HOST_PASSWORD = 'xxxx'
#收件人看到的发件人
EMAIL_FROM = 'xx商城<xxxx@163.com>'
3.使用Django提供的模块发送邮件
在django.core.mail模块提供了send_mail来发送邮件。
send_mail(subject, message, from_email, recipient_list,html_message=None)
subject 邮件标题
message 普通邮件正文, 普通字符串
from_email 发件人
recipient_list 收件人列表,这里一定要是列表
html_message 多媒体邮件正文,可以是html字符串
3.用qq邮箱为例,使用send_mail发送邮件
# settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com' # SMTP服务器地址
EMAIL_PORT = 25
#发送邮件的邮箱
EMAIL_HOST_USER = '110117@qq.com'
#在邮箱中设置的客户端授权密码
EMAIL_HOST_PASSWORD = 'remrqiezerughige'
#收件人看到的发件人
EMAIL_FROM = '生鲜商城<110117@qq.com>'
import os,django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "fruits_shop.settings")
django.setup()
from django.core.mail import send_mail
send_mail('水果八折优惠', '为回馈广大客户,本商城全部水果八折!!快来抢购', '110117@qq.com', ['113210@qq.com',],html_message='不知道说什么了,那就:“啦啦啦!”')
收件人看到的邮件内容: