用Python发送邮件[zt]
生活随笔
收集整理的這篇文章主要介紹了
用Python发送邮件[zt]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用Python發送郵件 服務器需要周期性的檢查郵件隊列,然后通過smtp服務器發送出去,就網上搜了搜,然后修改了加工了一下,寫了一個郵件發送的簡單模塊
兩個文件
config.py:配置信息
send_msg.py:發送郵件
send_msg.py
#coding=utf-8
import smtplib,config,email,sys
from email.Message import Message
def connect():
????"connect to smtp server and return a smtplib.SMTP instance object"
???? server=smtplib.SMTP(config.smtpserver,config.smtpport)
???? server.ehlo()
???? server.login(config.smtpuser,config.smtppass)
????return server
????
def sendmessage(server,to,subj,content):
????"using server send a email"
???? msg = Message()
???? msg['Mime-Version']='1.0'
???? msg['From']????= config.smtpuser
???? msg['To']??????= to
???? msg['Subject'] = subj
???? msg['Date']????= email.Utils.formatdate()??????????# curr datetime, rfc2822
???? msg.set_payload(content)
????try:????
???????? failed = server.sendmail(config.smtpuser,to,str(msg))???# may also raise exc
????except Exception ,ex:
??? ??? print Exception,ex
????????print 'Error - send failed'
????else:
??? ??? print "send success!"
if __name__=="__main__":
????#frm=raw_input('From? ').strip()
???? to=raw_input('To? ').strip()
???? subj=raw_input('Subj? ').strip()???
????print 'Type message text, end with line="."'
???? text = ''
????while True:
???????? line = sys.stdin.readline()
????????if line == '. ': break
???????? text += line
???? server=connect()
???? sendmessage(server,to,subj,text)
config.py
=====================================
smtpserver='mail.xxxx.net'
smtpuser='user@xxx.net'
smtppass='pwd'
smtpport='25' =====================================
開發筆記:用Python發送郵件 下面是用Python發送email的示例。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import email
import mimetypes
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage
import smtplib
def sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText):
??????? strFrom = fromAdd
??????? strTo = ', '.join(toAdd)
??????? server = authInfo.get('server')
??????? user = authInfo.get('user')
??????? passwd = authInfo.get('password')
??????? if not (server and user and passwd) :
??????????????? print 'incomplete login info, exit now'
??????????????? return
??????? # 設定root信息
??????? msgRoot = MIMEMultipart('related')
??????? msgRoot['Subject'] = subject
??????? msgRoot['From'] = strFrom
??????? msgRoot['To'] = strTo
??????? msgRoot.preamble = 'This is a multi-part message in MIME format.'
??????? # Encapsulate the plain and HTML versions of the message body in an
??????? # 'alternative' part, so message agents can decide which they want to display.
??????? msgAlternative = MIMEMultipart('alternative')
??????? msgRoot.attach(msgAlternative)
??????? #設定純文本信息
??????? msgText = MIMEText(plainText, 'plain', 'utf-8')
??????? msgAlternative.attach(msgText)
??????? #設定HTML信息
??????? msgText = MIMEText(htmlText, 'html', 'utf-8')
??????? msgAlternative.attach(msgText)
?????? #設定內置圖片信息
??????? fp = open('test.jpg', 'rb')
??????? msgImage = MIMEImage(fp.read())
??????? fp.close()
??????? msgImage.add_header('Content-ID', '<image1>')
??????? msgRoot.attach(msgImage)
?????? #發送郵件
??????? smtp = smtplib.SMTP()
?????? #設定調試級別,依情況而定
??????? smtp.set_debuglevel(1)
??????? smtp.connect(server)
??????? smtp.login(user, passwd)
??????? smtp.sendmail(strFrom, strTo, msgRoot.as_string())
??????? smtp.quit()
??????? return
if __name__ == '__main__' :
??????? authInfo = {}
??????? authInfo['server'] = 'smtp.somehost.com'
??????? authInfo['user'] = 'username'
??????? authInfo['password'] = 'password'
??????? fromAdd = 'username@somehost.com'
??????? toAdd = ['someone@somehost.com', 'other@somehost.com']
??????? subject = '郵件主題'
??????? plainText = '這里是普通文本'
??????? htmlText = '<B>HTML文本</B>'
??????? sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText)
http://blog.donews.com/maverick/archive/2007/04/22/1159142.aspx
兩個文件
config.py:配置信息
send_msg.py:發送郵件
send_msg.py
#coding=utf-8
import smtplib,config,email,sys
from email.Message import Message
def connect():
????"connect to smtp server and return a smtplib.SMTP instance object"
???? server=smtplib.SMTP(config.smtpserver,config.smtpport)
???? server.ehlo()
???? server.login(config.smtpuser,config.smtppass)
????return server
????
def sendmessage(server,to,subj,content):
????"using server send a email"
???? msg = Message()
???? msg['Mime-Version']='1.0'
???? msg['From']????= config.smtpuser
???? msg['To']??????= to
???? msg['Subject'] = subj
???? msg['Date']????= email.Utils.formatdate()??????????# curr datetime, rfc2822
???? msg.set_payload(content)
????try:????
???????? failed = server.sendmail(config.smtpuser,to,str(msg))???# may also raise exc
????except Exception ,ex:
??? ??? print Exception,ex
????????print 'Error - send failed'
????else:
??? ??? print "send success!"
if __name__=="__main__":
????#frm=raw_input('From? ').strip()
???? to=raw_input('To? ').strip()
???? subj=raw_input('Subj? ').strip()???
????print 'Type message text, end with line="."'
???? text = ''
????while True:
???????? line = sys.stdin.readline()
????????if line == '. ': break
???????? text += line
???? server=connect()
???? sendmessage(server,to,subj,text)
config.py
=====================================
smtpserver='mail.xxxx.net'
smtpuser='user@xxx.net'
smtppass='pwd'
smtpport='25' =====================================
原文地址 http://blog.csdn.net/foyuan/archive/2007/07/26/1709666.aspx
開發筆記:用Python發送郵件 下面是用Python發送email的示例。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import email
import mimetypes
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage
import smtplib
def sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText):
??????? strFrom = fromAdd
??????? strTo = ', '.join(toAdd)
??????? server = authInfo.get('server')
??????? user = authInfo.get('user')
??????? passwd = authInfo.get('password')
??????? if not (server and user and passwd) :
??????????????? print 'incomplete login info, exit now'
??????????????? return
??????? # 設定root信息
??????? msgRoot = MIMEMultipart('related')
??????? msgRoot['Subject'] = subject
??????? msgRoot['From'] = strFrom
??????? msgRoot['To'] = strTo
??????? msgRoot.preamble = 'This is a multi-part message in MIME format.'
??????? # Encapsulate the plain and HTML versions of the message body in an
??????? # 'alternative' part, so message agents can decide which they want to display.
??????? msgAlternative = MIMEMultipart('alternative')
??????? msgRoot.attach(msgAlternative)
??????? #設定純文本信息
??????? msgText = MIMEText(plainText, 'plain', 'utf-8')
??????? msgAlternative.attach(msgText)
??????? #設定HTML信息
??????? msgText = MIMEText(htmlText, 'html', 'utf-8')
??????? msgAlternative.attach(msgText)
?????? #設定內置圖片信息
??????? fp = open('test.jpg', 'rb')
??????? msgImage = MIMEImage(fp.read())
??????? fp.close()
??????? msgImage.add_header('Content-ID', '<image1>')
??????? msgRoot.attach(msgImage)
?????? #發送郵件
??????? smtp = smtplib.SMTP()
?????? #設定調試級別,依情況而定
??????? smtp.set_debuglevel(1)
??????? smtp.connect(server)
??????? smtp.login(user, passwd)
??????? smtp.sendmail(strFrom, strTo, msgRoot.as_string())
??????? smtp.quit()
??????? return
if __name__ == '__main__' :
??????? authInfo = {}
??????? authInfo['server'] = 'smtp.somehost.com'
??????? authInfo['user'] = 'username'
??????? authInfo['password'] = 'password'
??????? fromAdd = 'username@somehost.com'
??????? toAdd = ['someone@somehost.com', 'other@somehost.com']
??????? subject = '郵件主題'
??????? plainText = '這里是普通文本'
??????? htmlText = '<B>HTML文本</B>'
??????? sendEmail(authInfo, fromAdd, toAdd, subject, plainText, htmlText)
http://blog.donews.com/maverick/archive/2007/04/22/1159142.aspx
轉載于:https://blog.51cto.com/axlrose/1292679
總結
以上是生活随笔為你收集整理的用Python发送邮件[zt]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows 编程[5] - 学习窗体
- 下一篇: [分享]MOSS的CSS样式说明,一个老