#coding: utf-8
importsysimportosimportsmtplibfrom email.mime.multipart importMIMEMultipartfrom email.mime.text importMIMETextfrom email.mime.base importMIMEBasefrom email importencodersfrom smtplib importSMTPfrom email.header importHeaderdefgetParsStr(_str):return _str[2:len(_str)]defsendMail(_argv):
smtp=smtplib.SMTP()
userName=""passWd=""hostDomain="" #smtp.163.com
jieShouZhe =list()
chaoSongzhe=list()
miSongzhe=list()
title= ""fuJian= "" #写入附件的绝对路径
zhengWen = ""
for i in range(1, len(_argv)):if _argv[i].startswith('-U'):
userName=getParsStr(_argv[i])if _argv[i].startswith('-P'):
passWd=getParsStr(_argv[i])if _argv[i].startswith('-D'):
hostDomain=getParsStr(_argv[i])if _argv[i].startswith('-R'):
jieShouZhe=getParsStr(_argv[i])if len(jieShouZhe) >0:
jieShouZhe= jieShouZhe.replace("\"","").replace("\'","").replace("[","").replace("]","").split(",")if _argv[i].startswith('-C'):
chaoSongzhe=getParsStr(_argv[i])if len(chaoSongzhe) >0:
chaoSongzhe= chaoSongzhe.replace("\"","").replace("\'","").replace("[","").replace("]","").split(",")if _argv[i].startswith('-S'):
miSongzhe=getParsStr(_argv[i])if len(miSongzhe) >0:
miSongzhe= miSongzhe.replace("\"","").replace("\'","").replace("[","").replace("]","").split(",")if _argv[i].startswith('-T'):
title=getParsStr(_argv[i])if _argv[i].startswith('-F'):
fuJian=getParsStr(_argv[i])if _argv[i].startswith('-B'):
zhengWen=getParsStr(_argv[i])
email_client= smtplib.SMTP(hostDomain,25) #远程主机拒接连接 请使用smtplib.SMTP_SSL()
email_client.login(userName, passWd)
msg= MIMEText(zhengWen, 'plain', 'utf-8')
msg['Subject'] = Header(title, 'utf-8')
msg['From'] =userName
msg['To'] = ','.join(jieShouZhe)
msg['Cc'] = ','.join(chaoSongzhe)
msg['Bcc'] =','.join(miSongzhe)
email_client.sendmail(userName,jieShouZhe+chaoSongzhe+miSongzhe+[userName],msg.as_string())
email_client.quit()defgetHelp(_argv):if len(_argv)<=1:print("""*** 注意 所有参数不可出现空格 ***
-U 发件者邮箱用户名 eg.463259624@qq.com
-P 发件者邮箱密码
-D 发件者邮箱服务器 eg.smtp.163.com
-R 接收者邮箱,可设置多个格式为['xx@xx.com','yy@yy.com']
-C 抄送者邮箱,可设置多个格式为['xx@xx.com','yy@yy.com']
-S 密送者邮箱,可设置多个格式为['xx@xx.com','yy@yy.com']
-T 邮件标题
-F 附件绝对路径 eg.d:\\test.txt ,(未实现)
-B 邮件内容
实例:
1). sendMail.py -Utest@test.com -Pmima -Dsmtp.163.com -R'ShouJianZhe@test.com' -T标题 -B邮件内容
2). sendMail.py -Utest@test.com -Pmima -Dsmtp.163.com -R['ShouJianZhe1@test.com','ShouJianZhe2@test.com'] -C'ChaoSongzhe@test.com' -S['MiSongzhe@test.com'] -T标题 -B邮件内容""")if __name__ == '__main__':if len(sys.argv)<=1:
getHelp(sys.argv)else:
sendMail(sys.argv)