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等,都可以收發郵件...