Python 傳送email的幾種方式

2021-09-06 19:04:30 字數 2914 閱讀 6738

python傳送email還是比較簡單的,能夠通過登入郵件服務來傳送,linux下也能夠使用呼叫sendmail命令來傳送,還能夠使用本地或者是遠端的smtp服務來傳送郵件,無論是單個,**,還是抄送都比較easy實現。

先把幾個最簡單的傳送郵件方式記錄下,像html郵件,附件等也是支援的,須要時查文件就可以

1 登入郵件服務

#!/usr/bin/env python

# -*- coding: utf-8 -*-

#python2.7x

#send_******_email_by_account.py @2014-07-30

#author: orangleliu

'''使用python寫郵件 ******

使用126 的郵箱服務

'''import smtplib

from email.mime.text import mimetext

smtpserver = 'smtp.126.com'

sender = '[email protected]'

password = "***x"

message = 'i send a message by python. 你好'

msg = mimetext(message)

msg['subject'] = 'test email by python'

msg['from'] = sender

msg['to'] = destination

mailserver = smtplib.smtp(smtpserver, 25)

mailserver.login(sender, password)

mailserver.sendmail(sender, [sender], msg.as_string())

mailserver.quit()

print 'send email success'

2呼叫sendmail命令 (linux)

# -*- coding: utf-8 -*-

#python2.7x

#send_email_by_.py

#author: orangleliu

#date: 2014-08-15

'''用的是sendmail命令的方式

這個時候郵件還不定能夠發出來,hostname配置可能須要更改

'''from email.mime.text import mimetext

from subprocess import popen, pipe

def get_sh_res():

return str(p.communicate()[0])

def mail_send(sender, recevier):

print "get email info..."

msg = mimetext(get_sh_res())

msg["from"] = sender

msg["to"] = recevier

msg["subject"] = "yestoday inte***ce log results"

p = popen(["/usr/sbin/sendmail", "-t"], stdin=pipe)

res = p.communicate(msg.as_string())

print 'mail sended ...'

if __name__ == "__main__":

s = "[email protected]"

r = "[email protected]"

mail_send(s, r)

3 使用smtp服務來傳送(本地或者是遠端server)

#!/usr/bin/env python

# -*- coding: utf-8 -*-

#python2.7x

#send_email_by_smtp.py

#author: orangleliu

#date: 2014-08-15

'''linux 下使用本地的smtp服務來傳送郵件

前提要開啟smtp服務,檢查的方法

#ps -ef|grep sendmail

#telnet localhost 25

這個時候郵件還不定能夠發出來,hostname配置可能須要更改

'''import smtplib

from email.mime.text import mimetext

from subprocess import popen, pipe

def get_sh_res():

return str(p.communicate()[0])

def mail_send(sender, recevier):

msg = mimetext(get_sh_res())

msg["from"] = sender

msg["to"] = recevier

msg["subject"] = "yestoday inte***ce log results"

s = smtplib.smtp('localhost')

s.sendmail(sender, [recevier], msg.as_string())

s.quit()

print 'send mail finished...'

if __name__ == "__main__":

s = "[email protected]"

r = s

mail_send(s, r)

本文出自 

「orangleliu筆記本」

部落格,請務必保留此出處 

利用Python傳送email

引入smtplib和email.mime.text.mimetextimport smtplib 將你寫的字串轉化為郵件的文字形式 from email.mime.text import mimetext smtp伺服器位址 smtp server smtp.163.com 傳送者是誰 sender...

python傳送email郵件

1.使用qq郵箱做服務 郵 2。使用 coding utf 8 from import res import smtplib from email.mime.text import mimetext from email.utils import formataddr my sender 15964...

python網路爬蟲 Email傳送

與網頁通過http協議傳輸一樣,郵件是通過smtp mail transfer protocol 簡單郵件傳輸協議傳輸的。而且,和你使用網路伺服器的客戶端 瀏覽器 處理那些通過http協議傳輸的網頁一樣,email伺服器也有客戶端,像sendmail postfix和mailman等,都可以收發郵件...