首頁 > 軟體

Python SMTP傳送電子郵件的範例

2020-09-23 15:03:52

簡單郵件傳輸協定(SMTP)是一種協定,用於處理在電子郵件伺服器之間傳送電子郵件和路由電子郵件。Python提供了smtplib模組,該模組定義了一個SMTP使用者端對談物件,該物件可用於將郵件傳送到具有SMTP或ESMTP偵聽器守護程式的任何Internet計算機。
SMTP物件具有一個稱為sendmail的實體方法,該方法通常用於完成郵件的傳送工作。它需要三個引數-

  • sender- 具有發件人地址的字串。
  • receivers- 字串列表,每個接收者一個。
  • message- 以各種RFC中指定的格式格式化為字串的訊息。

Python SMTP示

這是使用Python指令碼傳送一封電子郵件的簡單方法。範例程式碼:

#!/usr/bin/python3

import smtplib

sender = 'from@fromdomain.com'
receivers = ['to@todomain.com']

message = """From: From Person <from@fromdomain.com>
To: To Person <to@todomain.com>
Subject: SMTP e-mail test

This is a test e-mail message.
"""

try:
  smtpObj = smtplib.SMTP('localhost')
  smtpObj.sendmail(sender, receivers, message)     
  print "Successfully sent email"
except SMTPException:
  print "Error: unable to send email"

在這裡,已經在郵件中放置了一個基本電子郵件,使用三重引號,請注意正確設定標題的格式。電子郵件需要一個「發件人」,「收件人」和「主題」檔頭,並以空白行與電子郵件正文分開。

要傳送郵件,需要使用smtpObj連線到本地計算機上的SMTP伺服器。然後,呼叫sendmail方法與訊息,發件人地址和目標地址一起用作引數(即使發件人和收件人地址位於電子郵件本身之內,但它們並不總是用於路由郵件)。

如果您不在本地計算機上執行SMTP伺服器,則可以使用smtplib使用者端與遠端SMTP伺服器通訊。除非您使用Webmail服務(例如gmail或Yahoo! Mail),否則您的電子郵件提供商必須已向您提供了可以提供它們的外發郵件伺服器詳細資訊,如下所示-

mail = smtplib.SMTP('smtp.gmail.com', 587)

使用Python傳送HTML電子郵件當使用Python傳送文字訊息時,所有內容均被視為簡單文字。即使您在文字訊息中包含HTML標籤,它也將顯示為簡單文字,並且HTML標籤不會根據HTML語法進行格式化。但是,Python提供了將HTML訊息作為實際HTML訊息傳送的選項。

傳送電子郵件時,可以指定Mime版本,內容型別和字元集來傳送HTML電子郵件。
範例程式碼

以下是將HTML內容作為電子郵件傳送的範例 -

#!/usr/bin/python3

import smtplib

message = """From: From Person <from@fromdomain.com>
To: To Person <to@todomain.com>
MIME-Version: 1.0
Content-type: text/html
Subject: SMTP HTML e-mail test

This is an e-mail message to be sent in HTML format

<b>This is HTML message.</b>
<h1>This is headline.</h1>
"""

try:
  smtpObj = smtplib.SMTP('localhost')
  smtpObj.sendmail(sender, receivers, message)     
  print "Successfully sent email"
except SMTPException:
  print "Error: unable to send email"

以上就是Python SMTP傳送電子郵件的範例的詳細內容,更多關於Python SMTP傳送電子郵件的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com