隨着近年來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