用那啥 那啥来着Django来发送Email,结合腾讯云,批量发短信给用户!

时间:2022-09-24 09:04:29

你们好,我是来ZB的!

这篇博客是用来发送邮件的,用的是Django框架,很好用。遗憾的是我当时用的阿里云,把腾讯QQ的端口给……给屏蔽了,啊啊啊啊,多么痛的领悟呀。后来用的163网易的邮箱。可以了!下面开始了哟

 

点我也没用,不信你点点!

一、干干干——发邮件

首先,对吧,然后,对吧,最后,不就可以了…………
首先把项目搭载好,然后在setting.py里面填写如下代码

1 # 邮件配置
2 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
3 # EMAIL_USE_TLS = False   # 是否使用TLS安全传输协议(用于在两个通信应用程序之间提供保密性和数据完整性。)
4 EMAIL_USE_SSL = True    # 是否使用SSL加密,qq企业邮箱要求使用
5 EMAIL_HOST = 'smtp.163.com'   # 发送邮件的邮箱 的 SMTP服务器,这里用了qq邮箱
6 EMAIL_PORT = 994     # 发件箱的SMTP服务器端口
7 EMAIL_HOST_USER = 'abraverman@163.com'    # 发送邮件的邮箱地址
8 EMAIL_HOST_PASSWORD = '授权码,舔自己的,具体方法,百度一哈野蛮简单的'         # 发送邮件的邮箱密码(这里使用的是授权码)
9 DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

注意:在用的时候看情况,163的协议是SSL的,所以打开SSL的协议关闭TLS的协议,如果记得没错的话,QQ应该是TLS的协议。


然后:注意了在views.py里面设计发送代码

 1 def email(request):
 2     email = request.GET.get("email")
 3     ret = {"state": 1000}
 4     code = str(uuid.uuid4())
 5     ret["msg"] = code
 6     AuthCode.objects.create(code=code)
 7     email_title = "欢迎您注册本软件"
 8     email_body = "您本次注册的验证码是:{}".format(code)
 9     # 发送邮件
10     send_mail(
11         email_title, # 发送的标题
12         email_body, # 发送的内容
13         'abraverman@163.com', # 谁发送
14         [email], # 发给谁
15         fail_silently=False # 必须写
16     )
17     return HttpResponse(code)

好啦,大功告成,完美!

溜了溜了!

用那啥 那啥来着Django来发送Email,结合腾讯云,批量发短信给用户!

 

 

二、更新,更新——发短信

 首先啦,信息发展时代很少人会再用邮箱来通知消息,当下啦,短信通知是最有效也最经济的,所以啦这篇文章就出生了。

话不多说,开干!首先我们得找一个发短信的平台,毕竟这样批量短信的事用私人的手机号,感觉有点作死。所以了我就去找到了腾讯的平台。点这里进入腾讯云平台点这里进入腾讯云官方文档、其实腾讯云的文档已经写得很清楚了,可我任然要谢谢我自己的见解。登录之后就进入了这个界面,一开始是没有应用的,我们点击添加应用

用那啥 那啥来着Django来发送Email,结合腾讯云,批量发短信给用户!

填写信息之后就获得了下面的表单,记录相应的数据

用那啥 那啥来着Django来发送Email,结合腾讯云,批量发短信给用户!

 

就这样还不够,我们还得创建短信模板,点击这里,创建签名,记住这里的内容

用那啥 那啥来着Django来发送Email,结合腾讯云,批量发短信给用户!

当然,这也是还不够的,我们还需要短信模板,模板根据要求来就可以。{1}{2}这个表示你会从后端传输列表类型的数据,然后列表的第一个放在括号里面的第一个,依次类推。记住这里的ID,

用那啥 那啥来着Django来发送Email,结合腾讯云,批量发短信给用户!

 

好啦,现在万事大吉了,现在去后端,在视图里面封装发短信的函数:

 

 1 # 封装发送短信的函数
 2 def Send(phone_numbers,params):
 3     """
 4     发送短信的函数,调用函数即可
 5     :param phone_numbers: 发送给谁的电话号码
 6     :param params: 传递一个列表,列表第一项是“name”, 第二项是“人数”
 7     :return:
 8     """
 9     # 短信应用 SDK AppID
10     appid = xxxxxxxx  # SDK AppID 以1400开头
11 
12     # 短信应用 SDK AppKey
13     appkey = "jiubugeinikanjiubugeinikanjiubugeinikan"
14 
15     # 需要发送短信的手机号码列表
16     phone_numbers = [phone_numbers] 
17 
18     # 短信模板ID,需要在短信控制台中申请
19     template_id = 111111  # NOTE: 这里的模板 ID`111111`只是示例,真实的模板 ID 需要在短信控制台中申请
20 
21     # 签名
22     sms_sign = "一定要是内容"  # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。
23 
24     from qcloudsms_py import SmsSingleSender
25     from qcloudsms_py.httpclient import HTTPError
26 
27     ssender = SmsSingleSender(appid, appkey)
28     # params = ["姜畅", "【杜鹏】"]  # 当模板没有参数时,`params = []`
29     try:
30         result = ssender.send_with_param(86, phone_numbers[0], template_id, params, sign=sms_sign, extend="",
31                                          ext="")  # 签名参数未提供或者为空时,会使用默认签名发送短信
32         print(result)
33     except HTTPError as e:
34         print(e)
35     except Exception as e:
36         print(e)

OK,在需要发短信的时候调用这个函数就可以了,一定要注意传递的参数,都是列表类型,且参数的位置和你建立的模板对应。

以上,便是email和手机短信自动发送的教程了。

 

人生苦短,我学Python!