总代码如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from email.mime.text import MIMEText
import smtplib
import sys
import time
iAm='xxx@163.com'
password='xxxx'
reload(sys)
sys.setdefaultencoding('utf-8')
#三个参数:whotosend代表收件人(收件人多个可以这样子写xxxx@163.com;xxxx@163.com),subject代表主题,mailbody代表发送的内容
def mySendMail( whotosend, subject, mailbody ):
#设置发送人是谁,必须要能登录的!!!!!
fromemail = iAm
current_time=time.strftime('%Y-%m-%d %H:%M',time.localtime(time.time()))
HOST = 'smtp.xxx.com'
SUBJECT = u'%s' % subject
FROM = fromemail
msg = MIMEText("""%s"""%(mailbody), "plain", "utf-8")
msg['Subject'] = SUBJECT
msg['From'] = FROM
msg['To'] = whotosend
try:
server = smtplib.SMTP()
server.connect(HOST, "25")
server.starttls()
#设置登录的密码!!!!!
server.login(fromemail, password)
server.sendmail(FROM, whotosend.split(','), msg.as_string())
server.quit()
print "success"
except Exception, e:
print "fail: "+str(e)
recv=sys.argv[1]
subject=sys.argv[2]
content=sys.argv[3]
mySendMail(recv, subject, content);
1: 使用方法(改三个变量后即可使用)
iAm='xxx@163.com' #这个把它改你的邮箱,比如test@163.com
password='xxxx' #把这个改成你邮箱的密码
HOST = 'smtp.xxx.com' #把这个改成smtp所在的地址,比如163就是smtp.163.com
2: 调用的时候需要给三个参数
1: 发给谁,比如mahuateng@qq.com,多个人使用逗号隔开
2: 主题是什么,比如 subject
3: 内容是什么,比如content
python mysendmail.py 'mahuateng@qq.com,mayun@ali.com' 'subject' 'content'
3: 注意事项
1: 因为使用你的邮箱和密码去163或者qq进行验证,所以你需要在网页登录你的邮箱开启smtp。没开启smtp就无法认证,也就无法使用python发送邮件了。
2: 另外,机器访问外网的tcp 25端口要开放,假如使用163,要你的机器能够访问smtp.163.com的25端口。