Linux服务器django发送邮件

这篇博客介绍了如何在Linux服务器上配置Django项目,以便通过Python的EmailMultiAlternatives模块发送HTML邮件。由于阿里云服务器可能限制了端口25,建议使用端口465。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、在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))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值