python郵件自動傳送
阿新 • • 發佈:2018-12-30
# -*- coding: UTF-8 -*-
# 如何新增附件
import os
import smtplib
import traceback
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
os.chdir("C:\\Users\\h****m\\Desktop\\Auto_email")
def sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password):
'''
@subject:郵件主題
@msg:郵件內容
@toaddrs:收信人的郵箱地址
@fromaddr:發信人的郵箱地址
@smtpaddr:smtp服務地址,可以在郵箱看,比如163郵箱為smtp.163.com
@password:發信人的郵箱密碼
'''
mail_msg = MIMEMultipart()
if not isinstance(subject,unicode): #過濾或者不過濾貌似沒啥影響
subject = unicode(subject, 'utf-8')
mail_msg['Subject'] = subject
mail_msg['From'] =fromaddr
mail_msg['To'] = ','.join(toaddrs)
#mail_msg.attach(MIMEText(msg, 'plain', 'utf-8')) #f傳送文字檔案
mail_msg.attach(MIMEText(msg, 'html', 'utf-8')) #傳送html格式郵件
#構造附件1
att1=MIMEText(open("test_file1.txt",'rb').read(),'base64','utf-8') #注意:直接讀取中文檔名會報錯
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename="test_file1.txt"'
mail_msg.attach(att1)
#構造附件2:新增中文附件名
att2=MIMEText(open(u'測試檔案2.docx','rb').read(),'base64','utf-8')
att2["Content-Type"] = 'application/octet-stream'
att2["Content-Disposition"] = 'attachment; filename="test_file2.docx"'
mail_msg.attach(att2)
try:
s = smtplib.SMTP()
s.connect(smtpaddr) #連線smtp伺服器
s.login(fromaddr,password) #登入郵箱
s.sendmail(fromaddr, toaddrs, mail_msg.as_string()) #傳送郵件
s.quit()
print "郵件傳送成功!"
except Exception,e:
print "Error: unable to send email"
print traceback.format_exc()
if __name__ == '__main__':
fromaddr = "h**** [email protected]"
smtpaddr = "smtp.126.com"
toaddrs = ["83****[email protected]","h****[email protected]"]
subject = "Hello,我是郵件主題"
password = "不能告訴你"
#msg = "Hello,我是郵件內容 !!!"
msg="""
<p>Python 郵件傳送測試...</p>
<p><a href="http://www.runoob.com">這是一個連結</a></p>
"""
sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password)
# 如何新增附件
import os
import smtplib
import traceback
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
os.chdir("C:\\Users\\h****m\\Desktop\\Auto_email")
def sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password):
'''
@subject:郵件主題
@msg:郵件內容
@toaddrs:收信人的郵箱地址
@fromaddr:發信人的郵箱地址
@smtpaddr:smtp服務地址,可以在郵箱看,比如163郵箱為smtp.163.com
@password:發信人的郵箱密碼
'''
mail_msg = MIMEMultipart()
if not isinstance(subject,unicode): #過濾或者不過濾貌似沒啥影響
subject = unicode(subject, 'utf-8')
mail_msg['Subject'] = subject
mail_msg['From'] =fromaddr
mail_msg['To'] = ','.join(toaddrs)
#mail_msg.attach(MIMEText(msg, 'plain', 'utf-8')) #f傳送文字檔案
mail_msg.attach(MIMEText(msg, 'html', 'utf-8')) #傳送html格式郵件
#構造附件1
att1=MIMEText(open("test_file1.txt",'rb').read(),'base64','utf-8') #注意:直接讀取中文檔名會報錯
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename="test_file1.txt"'
mail_msg.attach(att1)
#構造附件2:新增中文附件名
att2=MIMEText(open(u'測試檔案2.docx','rb').read(),'base64','utf-8')
att2["Content-Type"] = 'application/octet-stream'
att2["Content-Disposition"] = 'attachment; filename="test_file2.docx"'
mail_msg.attach(att2)
try:
s = smtplib.SMTP()
s.connect(smtpaddr) #連線smtp伺服器
s.login(fromaddr,password) #登入郵箱
s.sendmail(fromaddr, toaddrs, mail_msg.as_string()) #傳送郵件
s.quit()
print "郵件傳送成功!"
except Exception,e:
print "Error: unable to send email"
print traceback.format_exc()
if __name__ == '__main__':
fromaddr = "h****
smtpaddr = "smtp.126.com"
toaddrs = ["83****[email protected]","h****[email protected]"]
subject = "Hello,我是郵件主題"
password = "不能告訴你"
#msg = "Hello,我是郵件內容 !!!"
msg="""
<p>Python 郵件傳送測試...</p>
<p><a href="http://www.runoob.com">這是一個連結</a></p>
"""
sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password)