哎哟,不错哦,这个「django中使用smtplib发送邮件遇到的问题」百家号Lite小程序厉害咯~
分类:新闻资讯
开发作者:
发布时间:
更新时间:
「django中使用smtplib发送邮件遇到的问题」百家号Lite_作者自评:
如何评价百家号Lite小程序热议话题「django中使用smtplib发送邮件遇到的问题」
邮件发送是普通业务开发以及自动化运维中一个常用的功能,python提供了smtplib组件用于发送邮件。下面给出一个结合django框架实现的邮件发送案例:from__future__importunicode_literalsfromdjango.shortcutsimportHttpResponseimportsmtplibimportstringCreateyourviewshere.defsend(request):Host="smtp.163.com"Subject="emailtest"To="demo@example.com"From="php_coder@163.com"text="Pythonsendemail"Body=string.join(("from:%s"%From,"to:%s"%To,"subject:%s"%Subject,"",text),\")server=smtplib.SMTP()server.connect(Host,"25")server.starttls()server.login("php_coder@163.com","your163emailpassword")result=server.sendmail(From,[To],Body)server.quit()returnHttpResponse("OK")在浏览器中执行发送请求,会报错:“getaddrinfo()argument2mustbeintegerorstring”,这是说getaddrinfo这个方法的第二个参数必须是整数或者字符串。我们找到getaddrinfo这个方法的参数声明:getaddrinfo(host,port,family=None,socktype=None,proto=None,flags=None),可以知道,第二个参数是端口,也就是我们传给connect方法的"25"。从表面来看,我们传的确实是string(对于PHP、Java开发工程师更是拍胸脯地自信是string),但是我们引入了这样一段代码:from__future__importunicode_literals。在python中:从Python2.7到Python3.x就不兼容的一些改动,比如2.x里的字符串用'xxx'表示string,Unicode字符串用u'xxx'表示unicode,而在3.x中,所有字符串都被视为unicode,因此,写u'xxx'和'xxx'是完全一致的,而在3.x中以'xxx'表示的string就必须写成b'xxx',以此表示“二进制字符串”为了适应Python3.x的新的字符串的表示方法,在2.7版本的代码中,可以通过unicode_literals来使用Python3.x的新的语法:在python3中默认的编码采用了unicode,并取消了前缀u通过上面的分析,就可以知道了,我们传的port参数值“25”在当前是unicode编码,而getaddrinfo方法要求端口号参数值是string或者int型,所以我们可以将上述的代码这样修改(任选其一):将server.connect(Host,"25")改为:server.connect(Host,25)将server.connect(Host,"25")改为:server.connect(Host,b"25")将server.connect(Host,"25")改为:server.connect(Host,str("25"))这样就不会报错了,解决了getaddrinfo()argument2mustbeintegerorstring问题。python中的编码问题特别要注意。
该话题由百家号作者简单印象「简介:遇见·自然·简单·好时光!」
更多有关django中使用smtplib发送邮件遇到的问题的话题讨论请访问百家号Litex小程序关注作者-简单印象
「django中使用smtplib发送邮件遇到的问题」百家号Lite_使用指南:
步骤1:微信扫描「django中使用smtplib发送邮件遇到的问题」百家号Lite小程序码即可使用;
步骤2:微信搜索「django中使用smtplib发送邮件遇到的问题」百家号Lite小程序名称即可使用;
步骤3:微信网页访问即速商店-长按识别「django中使用smtplib发送邮件遇到的问题」百家号Lite小程序码即可使用。
「django中使用smtplib发送邮件遇到的问题」百家号Lite_服务声明:
本服务由「django中使用smtplib发送邮件遇到的问题」百家号Lite小程序开发者向微信用户提供,并对本服务信息内容、数据资料及其运营行为等的真实性、合法性及有效性承担全部责任。
"「django中使用smtplib发送邮件遇到的问题」百家号Lite"由开发者"「django中使用smtplib发送邮件遇到的问题」百家号Lite"原创首发于微信小程序商店shop.jisuapp.cn,转载请注明出处。
长按保存二维码,在微信app识别
共收到5条评价
5星3条
4星2条
3星0条
2星0条
1星0条
2019-08-30 02:10:22
哎哟,不错哦,这个「django中使用smtplib发送邮件遇到的问题」百家号Lite小程序厉害咯~
2019-08-30 02:09:06
居然还有这样子的小程序,这「django中使用smtplib发送邮件遇到的问题」百家号Lite微信小程序简直太完美了!!
2019-08-30 02:01:45
这个「django中使用smtplib发送邮件遇到的问题」百家号Lite小程序功能很实用,操作很简单。
2019-08-30 02:00:41
「django中使用smtplib发送邮件遇到的问题」百家号Lite是适合每个人的小程序,良心推荐
2019-08-30 02:00:27
做的很漂亮,内容也独特,给「django中使用smtplib发送邮件遇到的问题」百家号Lite点100个赞