有些時候使用smtp 25端口發(fā)mail安全性不大保障,另外還有mail廠商直接禁用smtp 25端口發(fā)送郵件,所以妥一點還是使用smtp SSL 加密協(xié)議發(fā)郵件吧。所以現(xiàn)在就分享一個可以使用SSL 465端口發(fā)郵件的Python腳本,有需要的朋友可以直接拿去。
Python代碼如下:
#!/usr/local/bin/python2.7
# -*- coding: utf-8 -*-
### author by 天擎
import time
import datetime
import smtplib
import os
import email.encoders as Encoders
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.Utils import COMMASPACE, formatdate, parseaddr, formataddr
from email.Header import Header
### define to mail
to_addrs = ['x6@bnw.com']
message = date + ' xxxx.message' + '''
</br>
</br>
<span style="font-family: Arial;color:RGB(128,128,128)">
__________________________________________<br>
<b>
<i>xxx團(tuán)隊</i><br>
</b>
</span>
'''
subject = '信息|' + date
attachlist = [ storePath + x for x in uploadFile ]
#print attachlist
if attachlist:
msg = MIMEMultipart()
msg['Subject'] = subject
msg['From'] = formataddr(('ops', 'ops@bnw.com'))
msg['To'] = ', '.join(to_addrs)
msg['Date'] = formatdate(localtime=True)
html = True
if not html:
msg.attach(MIMEText(message, 'plain', 'utf-8'))
else:
msg.attach(MIMEText(message, 'html', 'utf-8'))
for f in attachlist:
print f
part = MIMEBase('application', "octet-stream")
part.set_payload( open(f,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(f))
msg.attach(part)
try:
s = smtplib.SMTP_SSL('smtp.mxhichina.com:465')
s.login('ops@bnw.com','bnw')
s.sendmail('ops@bnw.com',to_addrs, msg.as_string())
s.quit()
except Exception,e:
print Exception,":",e
print "Your email is sent successfully."
else:
print "Error, Attach List Files Is Empty."