晓杰0 2019-06-29
随着近年来Python的火爆程度逐年攀升,越来越多的开发者开始因其丰富的库支持,简洁高效的语法以及强大的运算速度而对其纷纷侧目,也正因此,Python及基于它而生的各类框架(如Django,Falcon等)普遍应用于当下各类场景下.Python作为"ABCD"时代的弄潮儿,大有独领风骚之势.也正是因此,Python毫无疑问是当前最好的编程入门语言.
俗话说,"工欲善其事必先利其器",一个好的IDE(Integrated Development Environment)必不可少,除了可以高效快捷地书写思维,它更 是编程之美的快乐源泉的"水龙头".作为业界佼佼者,Jet Brains的各款IDE在开发者中极受欢迎,当然,他们为Python也量身定制了一款IDE——PyCharm,接下来就简单说一下如何安装并使用这款非常优秀的IDE.
你可以在这个页面看到以下内容:
请根据平台选择并下载你要使用的PyCharm,我下载的Windows的专业版.
PyCharm Professional 2018.3 (专业版,功能强大.需要付费激活, 可以免费试用)
PyCharm Community 2018.3 (社区版,功能比专业版略少,但对于初学者绰绰有余.开源)
下载完成之后即可双击安装
确保你成功安装了Python3(2.x版本的Python将会逐步失去支持)
专业版可以免费试用30天(点击"Evalute for free")
如果选择激活的话激活方式有三种
1.通过JetBrains账号激活,这要求你的JB账号内含PyCharm的使用权限;
2.通过激活码激活,本文使用此方式激活(YY看到这里请微信找我要激活码);
3.通过证书服务器激活(专为企业用户使用).
激活成功的话,就可以见到下面的界面了.
至此, 配置就告一段落了.
当然, IDE配置还是需要精确贴切我们的开发需要的, 我这里只是分享一些简单且通用的建议.
好, 至此我们已经完成了准备, 接下来可以将我的一段发送邮件的demo复制进去,代码如下:
import configparser import re import smtplib import sys from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.utils import formataddr cg = configparser.ConfigParser() cg.read('config.ini') # note 读取本地配置文件 encode = cg.get('mail', 'encode') # note 编码, 一般用utf-8 host = cg.get('mail', 'host') # note stmp邮件服务器 auth_code = cg.get('mail', 'pw') # note 授权码, 非密码(在你的邮箱设置里获取) re_mail_address = r'^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+){0,4}@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+){0,4}$' # note 邮箱的RegEx receivers = str(cg.get('mail', 'receivers')).split(',') # note 收件人邮箱数组 sender = cg.get('mail', 'sender') # note 发件人邮箱 if not re.match(re_mail_address, sender): print('发件人邮箱 %s 非法!' % sender) sys.exit() msg = MIMEMultipart() # note 支持附件的类型 msg.attach(MIMEText('所以我们是老乡', 'plain', encode)) # note 正文 msg['From'] = formataddr(['猎天使魔♂男', sender]) # note 发件人昵称和邮箱 msg['Subject'] = Header('我也是一个广东♂人', encode) # note 邮件主题 attachment = MIMEText(open("List of This Gym's Items.txt", 'rb').read(), 'base64', 'utf-8') # note 添加附件 attachment["Content-Type"] = 'application/octet-stream' attachment["Content-Disposition"] = 'attachment; filename="Items.txt"' # note filename邮件中附件显示的名字 msg.attach(attachment) if str(host).find('qq'): sm = smtplib.SMTP_SSL(host=host, port=smtplib.SMTP_SSL_PORT) # note Tencent系邮箱需要启用SSL else: # note Netease系邮箱采用普通smtp登录 sm = smtplib.SMTP() sm.connect(host, smtplib.SMTP_PORT) sm.login(sender, auth_code) for receiver in receivers: if not re.match(re_mail_address, receiver): print('收件人邮箱 %s 非法!', receiver) continue msg['To'] = formataddr(['', receiver]) # note 收件人昵称和邮箱 sm.sendmail(sender, receiver, msg.as_string()) print('向 %s 发送成功 !' % receiver) sm.quit()
我采用读取配置文件的方式读取参数(参数比较敏感), 所以需要在demo下新建一个config.ini文件:
为了测试发送附件的效果,需要仿照新建config.ini的过程创建一个名为List of This Gym's Items的txt文件,里面内容随意.
配置好之后,就可以执行了
如图所示,即为成功 !
i ٩(๑´3‘๑)۶ yy