django中如何发送邮件及发送邮件配置项

 1. 导入发送邮件所需的函数

from django.core.mail import send_mail

2. 发送邮件

send_mail(subject, message, from_email, recipient_list)

subject:邮件的主题
message:邮件的内容
from_email:发送方的邮件名称
recipient_list:收件人列表,是列表形式

 3. django中settings.py文件中的配置项

# 发送邮件配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

# smpt服务器地址
EMAIL_HOST = 'smtp.163.com'

# 端口
EMAIL_PORT = 25

# 发送邮件的邮箱
EMAIL_HOST_USER = '[email protected]'

# 在邮箱中设置的客户端授权密码
EMAIL_HOST_PASSWORD = 'aA149789......'

# 收件人看到的发件人
EMAIL_FROM = 'mayanan'

4. 发送邮件的模板

# 发邮件(subject:邮件主题, message:邮件内容, from_email:发件人, recipient:收件人列表, html_message:带有Html标签的邮件内容)
subject = "天天生鲜欢迎信息"
message = ""
from_email = settings.EMAIL_FROM
recipient_list = [email]
html_message = "

%s, 欢迎您成为天天生鲜注册会员

请点击下面链接激活您的账户
http://127.0.0.1:8000/user/active/%s/" % (user_name, token, token) send_mail(subject, message, from_email, recipient_list, html_message=html_message)

5. 发送邮件报错处理

用163smtp发邮件时候一直报警553权限问题

smtplib.SMTPSenderRefused: (553, b'Mail from must equal authorized user', 'webmaster@localhost')

解决办法:发送邮件时DEFAULT_FROM_EMAIL这一个设置必须写,而且内容和EMAIL_HOST_USER需要一致!

# 发送邮件配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
# smpt服务器地址
EMAIL_HOST = 'smtp.163.com'
# 端口
EMAIL_PORT = 25
# 发送邮件的邮箱
EMAIL_HOST_USER = '[email protected]'
# 在邮箱中设置的客户端授权密码
EMAIL_HOST_PASSWORD = 'aA149789......'
# 收件人看到的发件人
EMAIL_FROM = 'mayanan'
# 报错此项必须加上
DEFAULT_FROM_EMAIL = '[email protected]'

 

你可能感兴趣的:(Django,django中发送邮件配置)