django 配置163 qq 邮箱发送邮件

Django配置163与QQ邮箱发送邮件指南
本文介绍了如何在Django项目中设置163和QQ邮箱进行邮件发送,包括详细配置步骤。

配置163邮箱

#邮件发送配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.163.com'
EMAIL_PORT = 25
#发送邮件的邮箱
EMAIL_HOST_USER = '*******@163.com'
#在邮箱中设置的客户端授权密码
EMAIL_HOST_PASSWORD = '******'
#收件人看到的发件人
EMAIL_FROM = 'python<*****@163.com>'  # 需要和邮箱号码一致

配置qq 邮箱

# 使用qq 邮箱发送邮件
EMAIL_HOST = 'smtp.qq.com'
邮箱
EMAIL_HOST_USER = '*******@qq.com'
授权码
EMAIL_HOST_PASSWORD = '*********'
端口
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_FROM = '********@qq.com'  需要和邮箱号码一致
视图函数

from django.core.mail import send_mail
from django.conf import settings



def send_email_demo(request):
    from_who = settings.EMAIL_FROM  # 发件人  已经写在 配置中了 直接型配置中获取
    to_who = '******@163.com'  # 收件人  是一个列表
    subject = '发送一个连接'  # 发送的主题
    # 发送的消息
    message = '点击跳转呵呵呵呵呵呵呵'  # 发送普通的消息使用的时候message
    # meg_html = '<a href="http://www.baidu.com">点击跳转</a>'  # 发送的是一个html消息 需要指定
    send_mail(subject, message, from_who, [to_who], html_message=meg_html)
    return HttpResponse("ok")


"""
源码: send_mail 的源码 里面参数很多
    def send_mail(subject, message, from_email, recipient_list,
              fail_silently=False, auth_user=None, auth_password=None,
              connection=None, html_message=None):

"""
<think>好的,我现在需要帮助用户解决在Django配置SMTP发送邮件的问题。首先,我应该回顾一下用户提供的引用内容,确保信息准确。根据引用[1]到[5],配置主要涉及settings.py中的邮件设置,包括SMTP服务器、端口、TLS、邮箱和授权码等。 用户的问题是如何配置Django发送邮件,所以我需要分步骤说明。首先,应该在settings.py中添加EMAIL_BACKEND和其他相关配置。不同的邮箱服务商如QQ163可能有不同的端口和是否启用TLS,比如QQ邮箱使用587端口和TLS,而163可能用25端口。这点需要注意,引用[3]和[5]分别提到了163QQ配置示例。 然后,用户需要创建视图函数来发送邮件。使用send_mail函数,需要导入正确的模块,并传递主题、内容、发件人邮箱和收件人列表。引用[3]和[5]中的视图示例可以作为参考。 接下来是测试配置是否正确,可能需要处理常见错误,比如授权码是否正确,TLS设置是否正确,或者端口是否被防火墙阻挡。这部分需要提醒用户检查这些点,引用[2]和[4]提到了这些配置细节。 最后,生成相关问题时要考虑用户可能进一步想知道的内容,比如如何发送HTML邮件、添加附件,或者异步发送邮件的优化方法。这些扩展问题能帮助用户更深入使用Django邮件功能。 现在,我需要按照步骤整理回答,确保每个配置项都有例子,并正确引用来源。同时,注意使用中文,格式正确,数学表达式用$...$,虽然这里可能用不上,但如果有变量的话需要注意。另外,确保问题部分的相关问题有针对性,帮助用户继续深入学习。</think>### Django 配置 SMTP 发送邮件教程 #### 1. 配置 SMTP 参数 在 Django 项目的 `settings.py` 文件中添加以下配置项(以 QQ 邮箱为例): ```python EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' # 使用 SMTP 协议 EMAIL_HOST = 'smtp.qq.com' # QQ 邮箱的 SMTP 服务器地址 EMAIL_PORT = 587 # QQ 邮箱的加密端口 EMAIL_USE_TLS = True # 启用 TLS 加密协议[^4] EMAIL_HOST_USER = 'your_email@qq.com' # 发件人邮箱 EMAIL_HOST_PASSWORD = 'your_auth_code' # 邮箱授权码(非登录密码)[^2][^5] ``` #### 2. 创建邮件发送视图 在 `views.py` 中编写发送邮件的逻辑: ```python from django.core.mail import send_mail from django.http import HttpResponse def send_email_view(request): subject = "测试邮件标题" message = "这是邮件正文内容" from_email = 'your_email@qq.com' # 必须与配置邮箱一致 recipient_list = ['target@example.com'] # 收件人列表 # 发送邮件 send_mail( subject, message, from_email, recipient_list, fail_silently=False ) return HttpResponse("邮件发送!") ``` #### 3. 配置 URL 路由 在 `urls.py` 中添加路由映射: ```python from django.urls import path from . import views urlpatterns = [ path('send-email/', views.send_email_view, name='send_email'), ] ``` #### 4. 测试配置 运行开发服务器后访问 `/send-email/` 路径即可触发邮件发送: ```bash python manage.py runserver ``` #### 关键注意事项 - **授权码获取**:需在邮箱设置中生成 SMTP 专用授权码(QQ 邮箱路径:设置→账户→POP3/IMAP)[^2] - **安全协议**:QQ/163 邮箱需启用 `EMAIL_USE_TLS = True`,端口一般为 587 或 25[^3][^5] - **调试模式**:开发时可临时使用控制台输出邮件: ```python EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' ``` §§ 相关问题 §§ 1. 如何在 Django发送包含 HTML 内容的邮件?[^4] 2. 如何配置多个邮件服务器实现负载均衡? 3. 发送邮件时出现 `SMTPAuthenticationError` 错误应如何排查? 4. 如何通过 Celery 实现异步邮件发送?[^1] 5. 如何添加邮件附件(如 PDF、图片)?[^3]
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值