香港一卡通app下載鄭州seo外包顧問熱狗
目錄
一、理論
1.郵件發(fā)送
二、實驗
1.Python3.7使用QQ郵箱發(fā)送普通郵件
2.Python3.7使用QQ郵箱發(fā)送包含圖片與附件的郵件
三、問題
1.Pycharm中如何放大和縮小代碼界面
一、理論
1.郵件發(fā)送
(1)概念
? ? ? ? SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協(xié)議,它是?組?于由源地址到?的地址傳送 郵件的規(guī)則,由它來控制信件的中轉(zhuǎn)?式。
(2)實現(xiàn)
#實現(xiàn)發(fā)送郵件需經(jīng)過以下?步:
1) 登錄 郵件服務(wù)器
2) 構(gòu)造符合郵件協(xié)議規(guī)則要求的郵件內(nèi)容 (email模塊)
3) 發(fā)送
(3)模塊
Python對SMTP?持有 smtplib 和 email 兩個模塊, email 負責(zé)構(gòu)造郵件, smtplib 負責(zé)發(fā)送郵件,它 對smtp協(xié)議進?了簡單的封裝。
①smtplib模塊
1)smtplib模塊負責(zé)發(fā)送郵件
2)smtplib模塊還提供了SMTP_SSL類和LMTP類,對它們的操作與SMTP基本一致。host: SMTP服務(wù)器主機。 你可以指定主機的ip地址或者域名如: hellobi.com,這個是可選參數(shù)。port: 如果你提供了host參數(shù), 你需要指定 SMTP 服務(wù)使用的端口號,一般情況下SMTP端口號為25。local_hostname: 如果SMTP在你的本機上,你只需要指定服務(wù)器地址為localhost即可。
②email.utils模塊
email.utils模塊中提供了幾個有用的方法:
1)email.utils.quote(str)
將str中的反斜杠替換為兩個反斜杠的新字符串,并將雙引號替換為反斜杠雙引號。2)email.utils.unquote(str)
返回一個不帶引號的str的新字符串。如果str結(jié)束并以雙引號開頭,則會被剝離。同樣,如果str結(jié)束并以尖括號開始,它們將被剝離。3)email.utils.parseaddr(address)
解析地址 - 應(yīng)該是某個包含地址的字段(例如“ 收件人”或“ 抄送”)的值,并將其解析為其真實姓名和 電子郵件地址部分。返回該信息的元組,除非解析失敗,在這種情況下返回2元組。('', '')4)email.utils.formataddr(pair)
與此相反parseaddr(),這需要表單的2元組并返回適合于XX標(biāo)題的字符串值。如果pair的第一個元素為false,則第二個元素將不加修改地返回。(realname, email_address),實際上,parseaddr(), formataddr(),兩者互逆。5)email.utils.getaddresses(fieldvalues)
此方法返回由返回的表單的2元組列表parseaddr()。 fieldvalues是可能返回的一系列頭字段值 Message.get_all。
③email
模塊
email模塊負責(zé)構(gòu)造郵件:
1)類email.mime.text.MIMEText(_text),是使用字符串_text來生成MIME對象的主體文本。2)MIME是(Multipurpose Internet Mail Extensions) ,多用途互聯(lián)網(wǎng)郵件擴展類型。3)MIME設(shè)置的目的是為了在發(fā)送電子郵件時附加多媒體數(shù)據(jù),讓郵件根據(jù)其類型進行處理。4)email.encoders ,編碼器5)email.mime.multipart.MIMEMultipart(),是MIMEBase的一個子類,多個MIME對象的集合,MIME郵件中各種不同類型的內(nèi)容是分段存儲的,各個段的排列方式、位置信息都通過Content-Type域的multipart類型來定義。_subtype默認值為mixed,multipart類型主要有三種子類型:mixed、alternative、related。boundary是MIMEMultipart的邊界,默認邊界是可數(shù)的。6)email.mime.MIMEBase ,發(fā)送pdf/jpg/png等格式7)email.mime.MIMEApplication , 發(fā)送txt/doc/csv/xls等plain格式
二、實驗
1.Python3.7使用QQ郵箱發(fā)送普通郵件
(1)查看QQ郵箱服務(wù)(服務(wù)已關(guān)閉)
(2)綁定手機
(3)開啟授權(quán)碼
(4)再次查看服務(wù)(已開啟)
(5)配置代碼
# -*- coding: utf-8 -*-import smtplib
import email.utils#郵件正文
from email.mime.text import MIMEText#登錄郵件服務(wù)器
smtp_obj = smtplib.SMTP_SSL("smtp.qq.com", 465) # 發(fā)件?郵箱中的SMTP服務(wù)器,端?是25
smtp_obj.login("594372682@qq.com", "授權(quán)碼") # 括號中對應(yīng)的是發(fā)件?郵箱賬號、郵箱密碼
smtp_obj.set_debuglevel(True)
#smtp_obj.set_debuglevel(1) # 顯示調(diào)試信息
# 設(shè)置郵件頭信息
message = MIMEText("我是郵件的內(nèi)容")
message["From"] = email.utils.formataddr(('發(fā)送者顯示的姓名', '594372682@qq.com')) # 發(fā)送者
message["To"] = email.utils.formataddr(('接收者顯示的姓名', '7jjw@163.com')) # 接收者
message["Subject"] = '我是郵件的標(biāo)題' # 主題
# 發(fā)送
try:smtp_obj.sendmail("594372682@qq.com", ["7jjw@163.com"], msg=message.as_string())
finally:smtp_obj.quit()
(6)接收成功
(7)查看控制臺信息
2.Python3.7使用QQ郵箱發(fā)送包含圖片與附件的郵件
(1)配置代碼
# -*- coding: utf-8 -*-import smtplib
import email.utils
from email import encoders
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.base import MIMEBasemessage = MIMEMultipart()
message['To'] = email.utils.formataddr(('接收者顯示的姓名', '7jjw@163.com'))
message['From'] = email.utils.formataddr(('發(fā)送者顯示的姓名', '594372682@qq.com'))
message['Subject'] = '我是郵件的標(biāo)題'# 需要發(fā)送的圖片
img_file = open(r'1.jpg', 'rb')
img_data = img_file.read()
img_file.close()
img = MIMEImage(img_data)
message.attach(img)
img.add_header('Content-ID', 'dns_config') # 給一個content Id供后面html內(nèi)容引用
# 需要發(fā)送的文本
mail_content = """<html><body><p>我給你發(fā)送的圖片</p><img src="cid:dns_config"></body></html>
"""
message.attach(MIMEText(mail_content, 'html', 'utf-8'))
# 需要發(fā)送的附件
txt_payload = MIMEBase("application", "octet-stream")
txt_payload.set_payload(open(r"test.txt", "rb").read())
txt_payload['Content-Type'] = 'application/octet-stream'
txt_payload['Content-Disposition'] = 'attachment; filename= "test.txt"'
encoders.encode_base64(txt_payload)
message.attach(txt_payload)smtp_obj = smtplib.SMTP_SSL('smtp.qq.com', 465)
smtp_obj.login('594372682@qq.com', '授權(quán)碼')
smtp_obj.set_debuglevel(True)
try:smtp_obj.sendmail('594372682@qq.com', ['7jjw@163.com'], msg=message.as_string())
finally:smtp_obj.quit()
(2)接收成功
(3)查看控制臺信息
三、問題
1.PyCharm中如何放大和縮小代碼界面
(1)打開文件,點擊設(shè)置
(2)選擇“keymap”,右側(cè)搜索框輸入“increase”,搜索出來之后雙擊,選擇“Add Mouse Shortcut”
(3)在操作框按住“Ctrl”并將鼠標(biāo)滾輪上滑,完成設(shè)置,點擊OK關(guān)閉界面
(4)選擇“keymap”,右側(cè)搜索框輸入“decrease”,搜索出來之后雙擊,選“Add Mouse Shortcut”
(5) 在操作框按住“Ctrl”并將鼠標(biāo)滾輪下滑,完成設(shè)置,點擊OK關(guān)閉界面