随着近年来Python的火爆程度逐年攀升,愈来愈多的开发者开始因其丰富的库支持,简洁高效的语法以及强大的运算速度而对其纷纷侧目,也正所以,Python及基于它而生的各种框架(如Django,Falcon等)广泛应用于当下各种场景下.Python做为"ABCD"时代的弄潮儿,大有独领风骚之势.也正是所以,Python毫无疑问是当前最好的编程入门语言.python
俗话说,"工欲善其事必先利其器",一个好的IDE(Integrated Development Environment)必不可少,除了能够高效快捷地书写思惟,它更 是编程之美的快乐源泉的"水龙头".做为业界佼佼者,Jet Brains的各款IDE在开发者中极受欢迎,固然,他们为Python也量身定制了一款IDE——PyCharm,接下来就简单说一下如何安装并使用这款很是优秀的IDE.编程
你能够在这个页面看到如下内容:windows
请根据平台选择并下载你要使用的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.经过证书服务器激活(专为企业用户使用).app
激活成功的话,就能够见到下面的界面了.框架
至此, 配置就告一段落了.编辑器
固然, 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