django实现163邮箱发送消息功能

这段代码演示了如何使用Django的电子邮件功能发送带有特定内容的邮件。通过设置SMTP服务器、端口、用户名和授权码,成功发送了一封提醒邮件到指定邮箱。


        sendinfo=dl.dl_name+"提交一单,请尽快处理。时间"+re_date
        # send_mail的参数分别是  邮件标题,邮件内容,发件箱(settings.py中设置过的那个),收件箱列表(可以发送给多个人),失败静默(若发送失败,报错提示我们)
        send_mail('您有待处理一单', sendinfo, '111@163.com',['111@163.com'], fail_silently=False)
然后settings.py对应配置

###邮箱配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = False   #是否使用TLS安全传输协议(用于在两个通信应用程序之间提供保密性和数据完整性。)
EMAIL_USE_SSL = False    #是否使用SSL加密,qq企业邮箱要求使用
EMAIL_HOST = 'smtp.163.com'   #发送邮件的邮箱 的 SMTP服务器,这里用了163邮箱
EMAIL_PORT = 25     #发件箱的SMTP服务器端口
EMAIL_HOST_USER = '111@163.com'    #发送邮件的邮箱地址
EMAIL_HOST_PASSWORD = 'xxx'         #发送邮件的邮箱密码(这里使用的是授权码)

亲测发送成功,感觉仓鼠公仔的赞助

### 配置邮件服务器 在 Django实现邮件发送功能,首先需要配置邮件服务器。Django 提供了 `django.core.mail` 模块来简化邮件发送过程。以下是详细的配置步骤: 1. **设置邮件后端** 在项目的 `settings.py` 文件中,配置邮件后端为 SMTP 服务: ```python EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' ``` 这行代码指定了使用 SMTP 协议来发送邮件 [^2]。 2. **配置邮件服务器参数** 接下来,需要设置与邮件服务器相关的参数。这些参数包括邮件主机、端口、用户名和密码等: ```python EMAIL_USE_TLS = False EMAIL_USE_SSL = True EMAIL_HOST = 'smtp.163.com' # 以网易邮箱为例 EMAIL_PORT = 25 EMAIL_HOST_USER = 'your_email@163.com' EMAIL_HOST_PASSWORD = 'your_authorization_code' ``` - `EMAIL_USE_TLS`: 是否使用 TLS 安全传输协议。 - `EMAIL_USE_SSL`: 是否使用 SSL 加密。 - `EMAIL_HOST`: 发送邮件的邮箱的 SMTP 服务器地址。 - `EMAIL_PORT`: 发件箱的 SMTP 服务器端口。 - `EMAIL_HOST_USER`: 发送邮件的邮箱地址。 - `EMAIL_HOST_PASSWORD`: 发送邮件的邮箱密码(这里使用的是授权码) [^2]。 ### 实现邮件发送功能 完成邮件服务器的配置后,接下来可以实现在视图中发送邮件的功能。 1. **导入必要的模块** 在视图文件中,导入 `send_mail` 函数: ```python from django.core.mail import send_mail ``` 2. **编写发送邮件的逻辑** 在视图函数中,调用 `send_mail` 函数来发送邮件。以下是一个简单的示例,展示如何将一封邮件发送给多个收件人: ```python def email_one(request): if request.method == 'POST': to_email = request.POST.get('email', None) if to_email: res = send_mail( '这是一封测试邮件', 'Hello world', settings.EMAIL_HOST_USER, [to_email, '837497936@qq.com'] ) if res == 1: return HttpResponse('邮件发送成功') return redirect('/') else: return redirect('/') ``` - `send_mail` 的参数分别是:邮件标题、邮件内容、发件箱(在 `settings.py` 中设置过的那个)、收件箱列表(可以发送给多个人),以及失败静默(若发送失败,报错提示我们)。 [^3] 3. **发送多封邮件** 如果需要同时发送多封邮件,可以使用 `send_mass_mail` 函数。以下是一个示例,展示如何发送多封邮件给不同的收件人: ```python def email_more(request): if request.method == 'POST': email1 = request.POST.get('email1', None) email2 = request.POST.get('email2', None) email3 = request.POST.get('email3', None) if email1 and email2 and email3: message1 = ('申通快递', '你的快放在菜鸟驿站,验证码:2581314', settings.EMAIL_HOST_USER, [email1, email3]) message2 = ('美团外卖', '你的猪肉炖粉条已经送达,请取餐', settings.EMAIL_HOST_USER, [email2]) message3 = ('中国移动', '亲,您的手机已欠费,请及时充值!', settings.EMAIL_HOST_USER, [email3]) try: res = send_mass_mail((message1, message2, message3)) except Exception as e: print(e) return HttpResponse('发送失败!') return redirect('/') ``` - `send_mass_mail` 允许一次发送多封邮件,适用于批量发送邮件的场景 [^3]。 ### 注意事项 - **垃圾邮件问题** 有时候虽然系统提示邮件发送成功,但收件人可能在收件箱中找不到邮件。这种情况下,建议检查垃圾邮件箱,因为邮件可能会被误判为垃圾邮件 [^3]。 - **邮件客户端协议** 当用户通过邮件客户端发送邮件时,邮件客户端会使用 SMTP 协议与邮箱服务器进行通信。如果收件人使用的是不同服务商的邮箱,发件方的邮箱服务器会将邮件转发到收件方的邮箱服务器。收件人在登录邮件客户端时,通常会触发 IMAP 或 POP3 协议来拉取邮件 [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

py编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值