python实现邮箱发送功能

1.登录邮箱客户端

2.进入设置–>账户–>POP3/IMAP/SMTPa/Exchange/CardDAV/CalDAV服务

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.进入djngo项目settings配置文件内

#设置邮件域名 发送邮件服务器:smtp.qq.com
EMAIL_HOST = 'smtp.qq.com'
#设置端口号,为数字
EMAIL_PORT = 25
#设置发件人邮箱
EMAIL_HOST_USER = '11******14@qq.com'
#设置发件人 授权码
EMAIL_HOST_PASSWORD = 'nupljgctckddjgga'
#TLS 传输安全开启
EMAIL_USER_TLS = True

4.views

from django.core.mail import send_mail
import random
#随机验证码
def vercode(user):
    res1 = ''
    for i in range(4):
        num = random.randint(0,9)
        res1 += str(num)
        REDIS_CON.set(f'{user}',res1)
        REDIS_CON.expire(f'{user}',3000)
    return res1
#注册邮箱
class Send_Email(View):
    def get(self,request):
        re_send = request.GET.get('email')
        sbj = '测试邮箱发送验证码'
        msg = f'您的验证码为:{vercode(re_send)}'
        from_send = EMAIL_HOST_USER
        #subject标题 message内容 from_email发送人 recipient_list接受人(多个)
        res = send_mail(subject=sbj,message=msg,from_email=from_send,recipient_list=[re_send])
        if res == 1:
            return render(request, 'send_email.html')
        else:
            return render(request, 'send_email.html')

5.urls

path('send_email/', views.Send_email.as_view()),

6.html

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>发送邮箱</title>
    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
邮箱:<input type="text" name="email" id="email_id">
<input type='submit' value="发送邮箱" onclick="send()">
</body>
<script>
    function send() {
        $.ajax({
            url:'http://127.0.0.1:8000/book_app/send_email/',
            method:'get',
            data:{
                'email':document.getElementById('email_id').value
            }
        })
    }
</script>
</html>

7.redis连接

在settings中添加进行redis连接

REDIS_CON = redis.StrictRedis(host = 'localhost',port = 6379)

8.最终成果

点击发送邮箱即可获得验证码
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
邮件合并是指将一封邮件发送给多个收件人,但是每个收件人看到的邮件内容都不同,通常是根据收件人的信息自动填充邮件内容中的某些字段。 在 Python实现邮件合并功能,可以使用第三方库 `smtplib` 和 `email`。以下是一个简单的邮件合并示例: ```python import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart # 收件人列表 to_list = ['[email protected]', '[email protected]'] # 邮件正文模板,可以用占位符 {} 代替需要填充的内容 template = 'Dear {},\n\nThis is a test email. Best regards,\nYour Name' # 发送邮件的邮箱和密码 sender = '[email protected]' password = 'your_email_password' # SMTP 服务器地址和端口 smtp_server = 'smtp.example.com' smtp_port = 587 # 登录邮箱 server = smtplib.SMTP(smtp_server, smtp_port) server.starttls() server.login(sender, password) # 循环发送邮件 for to_addr in to_list: # 构造邮件正文 message = MIMEMultipart() message['From'] = sender message['To'] = to_addr message['Subject'] = 'Test Email' body = MIMEText(template.format(to_addr.split('@')[0]), 'plain') message.attach(body) # 发送邮件 server.sendmail(sender, to_addr, message.as_string()) # 关闭连接 server.quit() ``` 在上面的代码中,我们首先定义了收件人列表和邮件正文模板。然后,我们使用 `smtplib` 和 `email` 库构造邮件正文,并循环发送邮件给每个收件人。在发送邮件之前,我们需要登录邮箱,并指定 SMTP 服务器的地址和端口。最后,我们关闭连接并退出程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值