【Python】傳送郵件功能淺析
之前要做一個mysql慢查詢的定時傳送程式,研究了一下python 傳送email的模組。python 可以smtplib 庫和email 庫傳送郵件。
一 stmplib 的使用
初始化語法如下:
#連線到SMTP伺服器
s = smtplib.SMTP('smtp.XXXX.com')
#傳送郵件。msg是字串,表示郵件內容。
s.sendmail(from_addr, to_addrs, msg)
#斷開連線
s.quit()
二 email 的使用
有關MIME的一些知識
多用途網際網路郵件擴充套件(MIME,Multipurpose Internet Mail Extensions)是一個網際網路標準,它擴充套件了電子郵件標準,使其能夠支援非ASCII字元、二進位制格式附件等多種格式的郵件訊息。
RFC2822定義的郵件格式中,郵件體只是單純的ASCII編碼的字元序列,MIME擴充套件郵件的格式,用以支援非ASCII編碼的文字、非文字附件及包含多個部分(multi-part)的郵件體。
MIME訊息由訊息頭、訊息體組成,即郵件的郵件頭、郵件體。中間以空行進行分隔。
1、郵件頭:包括髮件人(from)、收件人(to)、郵件主題(subject)、接收日期(date)、MIME版本、郵件內容型別等資訊。每條資訊稱為一個域,由域名後加“:”和資訊內容構成,域的首行必須頂頭寫。
2、郵件體:有text/plain(純文字)和text/html(超文字)之分,由郵件頭的“content type”域指出。可以同時存在,也可以只存在一種。這就是為什麼有些郵件既可以用html格式檢視,又可以用文字格式檢視的原因。郵件體分為多個段,稱為Payload。每個段也包括段頭段尾,中間以空行分隔。
multipart型別有3種:
multipart/mixed
multipart/related
multipart/alternative。
郵件裡新增附件要定義multipart/mixed段:
如果純文字超文字共存,則要定義multipart/alternative,
如存在內嵌資源,要定義multipart/related。
3、附件(attach)。傳送郵件時,可以將本機的檔案一起傳送。附件可以有0個或多個,只要附件的總大小,不超過郵件伺服器所宣告的最大容量。
class email.mime.text.MIMEText(_text[, _subtype[, _charset]])
用於生成MIME物件的主體文字:_text指定郵件內容,_subtype指定郵件型別,_charset指定編碼。
class email.mime.multipart.MIMEMultipart()
用於生成包含多個部分的郵件體的MIME物件
三 簡單例子介紹:
一個傳送至多人的例子:
#!/usr/bin/evn python
import time
import smtplib
from email.mime.text import MIMEText
mail_body='hello, this is the mail content from python and it is sended to two emails !'
fromer='qilong.yangql@gmail.com'
##注意sender 一定要是陣列,否則接受到郵件顯示收件人是被";" 截斷的字串
sender=['5XXX2@qq.com','yangXXX@163.com']
msg=MIMEText(mail_body)
msg['Subject']='hello world '
msg['From']=fromer
msg['To']=';'.join(sender)
msg['date']=time.strftime('%a, %d %b %Y %H:%M:%S %z')
s=smtplib.SMTP('smtp.XXXXX.com')
s.sendmail(fromer,sender,msg.as_string())
s.quit()
參考:
%E5%A4%9A%E7%94%A8%E9%80%94%E4%BA%92%E8%81%AF%E7%B6%B2%E9%83%B5%E4%BB%B6%E6%93%B4%E5%B1%95
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-765694/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 教程-Python例項-傳送郵件功能Python
- python傳送郵件Python
- Python 實現郵件傳送功能(進階)Python
- Python 實現郵件傳送功能(初級)Python
- Django實現傳送郵件功能Django
- 使用python傳送郵件和接收郵件Python
- Python SMTP傳送郵件Python
- 使用python傳送郵件Python
- 郵件傳送
- 傳送郵件
- Python使用SMTP傳送郵件Python
- python實現傳送郵件Python
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- laravel 郵件傳送功能使用說明Laravel
- 傳送郵件的小功能(.net core 版)
- Laravel 傳送郵件Laravel
- PHP傳送郵件PHP
- Django——郵件傳送Django
- java郵件傳送Java
- Laravel傳送郵件Laravel
- gmail傳送郵件AI
- Oracle郵件傳送Oracle
- java傳送郵件Java
- Powershell郵件傳送
- thinkphp 郵件傳送PHP
- centos 傳送郵件CentOS
- phpcms傳送郵件PHP
- 郵件的傳送
- 使用python傳送和接收郵件Python
- python實現郵件的傳送Python
- Python通用郵件傳送(smtplib)Python
- 功能較全的oracle傳送郵件過程Oracle
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- 在Python如何使用SMTP傳送郵件Python
- Python 傳送帶有附件的郵件Python
- Python 傳送郵件的幾種方式Python
- golang傳送郵件(qq郵箱)Golang
- 郵件傳送API整理API