python smtplib sendEmail example
zihua
2014-03-27 18:03:41
点击: 1117
|
收藏
-
#!/usr/bin/python
-
import getopt
-
import os
-
import smtplib
-
import sys
-
import time
-
from email.mime.text import MIMEText
-
from email.header import Header
-
version=1.0
-
-
def SendEmail(fromAdd, toAdd, subject, htmlText):
-
strFrom = fromAdd
-
strTo = toAdd;
-
msg =MIMEText(htmlText);
-
msg['Content-Type'] = 'Text/HTML';
-
msg['Subject'] = Header(subject,'utf-8');
-
msg['To'] = " ".join(strTo).replace(' ',';')
-
msg['From'] = strFrom;
-
-
print "htmlText:[",htmlText,"]"
-
print "msg=[",msg,"]"
-
smtp = smtplib.SMTP_SSL('smtp.qq.com',465);
-
#smtp.set_debuglevel(1)
-
smtp.login('test@qq.com','123456');
-
try:
-
smtp.sendmail(strFrom,strTo,msg.as_string());
-
finally:
-
smtp.close;
-
def usage(bin):
-
print bin,version
-
print "-v --version"
-
print "-h --help"
-
print "-s --subject=<Your Mail Title> -f --message-file=<Your Mail Content>"
-
-
if __name__ == "__main__":
-
if len(sys.argv) < 2:
-
usage(sys.argv[0])
-
sys.exit(1)
-
try:
-
opts, args = getopt.getopt(sys.argv[1:], "hs:m:v", ["help", "subject=","message="])
-
except getopt.GetoptError as err:
-
print "help information and exit"
-
print str(err) # will print something like "option -a not recognized"
-
usage(sys.argv[0])
-
sys.exit(1)
-
subject = None
-
message = None
-
for o, a in opts:
-
if o == "-v":
-
print version
-
sys.exit(1)
-
elif o in ("-h", "--help"):
-
usage(sys.argv[0])
-
sys.exit(1)
-
elif o in ("-s", "--subject"):
-
subject = a
-
elif o in ("-f", "--message-file"):
-
message = a
-
else:
-
assert False, "unhandled option"
-
if len(sys.argv) < 3:
-
print "Usage:",sys.argv[0],"Subject Message"
-
sys.exit(1)
-
-
f = open(message,'r')
-
data = f.read()
-
f.close()
-
if len(data) > 0:
-
tolist=["xiaomin@sina.com","zhangsan@gmail.com"]
-
SendEmail("test@qq.com",tolist,subject,data)
原文链接:http://blog.chinaunix.net/uid-16125873-id-4174851.html