一、在settings.py文件里添加配置。(python发送邮件的端口25和465都可以,但是如果是阿里云服务器,端口25可能不能使用。建议使用端口465发送邮件)
# 发送邮件设置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_SSL = True
# EMAIL_HOST邮件发送的服务器
EMAIL_HOST = 'smtp.ym.163.com'
# EMAIL_PORT发送邮件端口
EMAIL_PORT = 465
# EMAIL_HOST_USER发送邮件的邮箱
EMAIL_HOST_USER = 'xxx@163.com'
# EMAIL_HOST_PASSWORD 发送邮件的邮箱授权码
EMAIL_HOST_PASSWORD = 'yyyyy'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
二、发送邮件的后台代码(示例为发送的邮件内容为HTML,发送邮件使用的是EmailMultiAlternatives)
from django.conf import settings
from email.header import Header
from email.utils import parseaddr, formataddr
from django.core.mail import EmailMultiAlternatives
def send_verification_code(request):
# 发送的邮箱账号
sender = settings.DEFAULT_FROM_EMAIL
# 邮件抬头
subject = '标题'
# 邮件内容
mail_msg = "亲爱的用户:<br/><br/>您好!感谢您使用修改密码服务,您正在进行账号验证, <br/>" \
"本次请求的验证码为: <span style = 'color:red;font-size: 20px;'>123456</span>(为了保障您帐号的安全性,请在1 小时内完成验证。)<br/><br/>Geetecho团队联系邮箱: " \
"xxx @ 163.com <br/> " + \
datetime.datetime.now().strftime('%Y{y}%m{m}%d{d}').format(y='年', m='月', d='日')
# 设置标题的字符编码
message['Subject'] = Header(subject, 'utf-8')
# 发送设置
msg = EmailMultiAlternatives(message['Subject'], mail_msg,
_format_addr(u'发送者名称 <%s>' % sender),
[_format_addr(u'接受者名称 <%s>' % email)])
# 邮件内容的格式
msg.content_subtype = "html"
# 发送
msg.send()
# 格式转换方法
def _format_addr(s):
name, addr = parseaddr(s)
return formataddr((Header(name, 'utf-8').encode(), addr))