Day14B 網路應用開發

2021-09-21 01:30:31 字數 3503 閱讀 5423

在即時通訊軟體如此發達的今天,電子郵件仍然是網際網路上使用最為廣泛的應用之一,公司向應聘者發出錄用通知、**向使用者傳送乙個啟用賬號的鏈結、銀行向客戶推廣它們的理財產品等幾乎都是通過電子郵件來完成的,而這些任務應該都是由程式自動完成的。

就像我們可以用http(超文字傳輸協議)來訪問乙個**一樣,傳送郵件要使用smtp(簡單郵件傳輸協議),smtp也是乙個建立在tcp(傳輸控制協議)提供的可靠資料傳輸服務的基礎上的應用級協議,它規定了郵件的傳送者如何跟傳送郵件的伺服器進行通訊的細節,而python中的smtplib模組將這些操作簡化成了幾個簡單的函式。

下面的**演示了如何在python傳送郵件。

from smtplib import smtp

from email.header import header

from email.mime.text import mimetext

def main():

# 請自行修改下面的郵件傳送者和接收者

sender = '[email protected]'

receivers = ['[email protected]', '[email protected]']

message = mimetext('用python傳送郵件的示例**.', 'plain', 'utf-8')

message['from'] = header('王大錘', 'utf-8')

message['to'] = header('駱昊', 'utf-8')

message['subject'] = header('示例**實驗郵件', 'utf-8')

smtper = smtp('smtp.126.com')

# 請自行修改下面的登入口令

smtper.login(sender, 'secretpass')

smtper.sendmail(sender, receivers, message.as_string())

print('郵件傳送完成!')

if __name__ == '__main__':

main()

如果要傳送帶有附件的郵件,那麼可以按照下面的方式進行操作。

from smtplib import smtp

from email.header import header

from email.mime.text import mimetext

from email.mime.image import mimeimage

from email.mime.multipart import mimemultipart

import urllib

def main():

# 建立乙個帶附件的郵件訊息物件

message = mimemultipart()

# 建立文字內容

text_content = mimetext('附件中有本月資料請查收', 'plain', 'utf-8')

message['subject'] = header('本月資料', 'utf-8')

# 將文字內容新增到郵件訊息物件中

message.attach(text_content)

# 讀取檔案並將檔案作為附件新增到郵件訊息物件中

with open('/users/hao/desktop/hello.txt', 'rb') as f:

txt = mimetext(f.read(), 'base64', 'utf-8')

txt['content-type'] = 'text/plain'

txt['content-disposition'] = 'attachment; filename=hello.txt'

message.attach(txt)

# 讀取檔案並將檔案作為附件新增到郵件訊息物件中

with open('/users/hao/desktop/彙總資料.xlsx', 'rb') as f:

xls = mimetext(f.read(), 'base64', 'utf-8')

xls['content-disposition'] = 'attachment; filename=month-data.xlsx'

message.attach(xls)

# 建立smtp物件

smtper = smtp('smtp.126.com')

# 開啟安全連線

# smtper.starttls()

sender = '[email protected]'

receivers = ['[email protected]']

# 登入到smtp伺服器

# 請注意此處不是使用密碼而是郵件客戶端授權碼進行登入

# 對此有疑問的讀者可以聯絡自己使用的郵件伺服器客服

smtper.login(sender, 'secretpass')

# 傳送郵件

smtper.sendmail(sender, receivers, message.as_string())

# 與郵件伺服器斷開連線

smtper.quit()

print('傳送完成!')

if __name__ == '__main__':

main()

傳送簡訊也是專案中常見的功能,**的註冊碼、驗證碼、營銷資訊基本上都是通過簡訊來傳送給使用者的。在下面的**中我們使用了互億無線簡訊平台(該平台為註冊使用者提供了50條免費簡訊以及常用開發語言傳送簡訊的demo,可以登入該**並在使用者自服務頁面中對簡訊進行配置)提供的api介面實現了傳送簡訊的服務,當然國內的簡訊平台很多,讀者可以根據自己的需要進行選擇(通常會考慮費用預算、簡訊達到率、使用的難易程度等指標),如果需要在商業專案中使用簡訊服務建議購買簡訊平台提供的**服務。

# 下面的引數需要填入自己註冊的賬號和對應的密碼

IOS開發之 網路應用

nsdata foundation nsurl nsurlrequest nsurlconeection nsnetservice nsnetservicebrowser core foundation cfnetwork cfnetservice bsd sockets 1 獲取 nsdata d...

day14 卷積網路識別手寫數字

卷積網路的結構為 權重初始化函式 param shape return weight tf.variable tf.random normal shape,seed 0.0,stddev 1.0 return weight def bias variable shape 偏置初始化函式 param ...

web應用開發實戰作業day02

1.屬性和標籤什麼關係?html屬性一般都出現在html標籤中,html屬性是html標籤的一部分。標籤可以有屬性,它包含了額外的資訊,屬性的值一般要在引號中 有時也可以不加引號 標籤可以擁有乙個或多個屬性,也可以沒有屬性 屬性一般由屬性名和值成對出現。屬性選擇器可以挑選帶有特殊屬性的標籤語法 屬性...