「django中使用smtplib发送邮件遇到的问题」百家号Lite-微信小程序

「django中使用smtplib发送邮件遇到的问题」百家号Lite

分类:新闻资讯

开发作者:「django中使用smtplib发送邮件遇到的问题」百家号Lite

发布时间:

更新时间:

101

「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,转载请注明出处。

「django中使用smtplib发送邮件遇到的问题」百家号Lite 小程序截图

「django中使用smtplib发送邮件遇到的问题」百家号Lite 小程序使用指南

长按保存二维码,在微信app识别

「django中使用smtplib发送邮件遇到的问题」百家号Lite-微信小程序二维码

看了 「django中使用smtplib发送邮件遇到的问题」百家号Lite 的还看了

「django中使用smtplib发送邮件遇到的问题」百家号Lite 小程序评分

4.6

共收到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微信小程序简直太完美了!!

↘生活dシ唅嬑o.``

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个赞

说说你的看法吧
5