有这样一个功能需要实现:在 Django 布置的系统里,有时候运行到某个功能的时候会报错,我们可以使用 try except 来避免这种报错,让程序继续运行下去,但有时候我们会想要捕获这种错误,并且实时的告知我们,我想到一个功能就是通过发送邮件的方式。
Django 里有一个模块:
from django.core.mail import send_mail
可以很方便地实现我们需要的功能。
如下是使用步骤,亲测有效:
1、一个用来发送邮件的账号
首先我们需要一个用来发送邮件的账号,我申请了一个 163 邮箱,然后登陆网页版,设置部分开启 SMTP 服务。
然后会要求我们填写一个授权码,这个授权码需要记住,我们待会儿会用到。
2、Django 的系统设置文件
在 settings.py 里加上以下几行:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.163.com' #这个是163 邮箱需要填写的,其他类型的邮箱待查
EMAIL_PORT = 465 #这个是加密的等级之类的东西
EMAIL_HOST_USER = 'xionglh_test@163.com' #这个是用来发送邮件的邮箱,与最后一个填写的邮箱地址一致
EMAIL_HOST_PASSWORD = '*******' #这里就是前面提到的授权密码
EMAIL_USE_SSL = True
EMAIL_FROM = 'xionglh_test@163.com'
3、发送邮件
在 views.py 文件里报错,或者需要邮件提醒的地方就可以使用以下函数发送邮件了。
from django.core.mail import send_mail #引入模块
target_email = 'xxxxxxx@xx.com'
send_mail('title', 'detail message', 'xionglh_test@163.com', [target_email])
send_email 的第一个参数是发送的标题,第二个参数是具体详情,第三个参数是发送方邮箱地址,与第二个步骤的保持一致,第四个参数是个列表,是接收方的邮箱地址,可填写多个。
至此,发送邮件的功能就实现了,重启我们的 Django 系统,在系统功能的某个部分加上这些东西,指定邮箱就可以收到邮件了。