正文
废话不多说,直接上代码。
一、普通文本邮件(作通知训练结束用 :smiley: )
#-*-coding:UTF-8-*- importsmtplib fromemail.mime.textimportMIMEText #第三方SMTP服务 mail_host="smtp.163.com"#SMTP服务器 mail_user="yourname"#用户名 mail_pass="xxx"#密码(这里的密码不是登录邮箱密码,而是授权码) sender='yourname@163.com'#发件人邮箱 receivers='othername@163.com']#接收人邮箱 content='PythonSendMail!训练结束!' title='PythonSMTPMail训练结束'#邮件主题 message=MIMEText(content,'plain','utf-8')#内容,格式,编码 message['From']="{}".format(sender) message['To']=",".join(receivers) message['Subject']=title try: smtpObj=smtplib.SMTP_SSL(mail_host,465)#启用SSL发信,端口一般是465 smtpObj.login(mail_user,mail_pass)#登录验证 smtpObj.sendmail(sender,receivers,message.as_string())#发送 print("mailhasbeensendto{0}successfully.".format(receivers)) exceptsmtplib.SMTPExceptionase: print(e)
二、加强版附件传输邮件
#-*-coding:UTF-8-*- importsmtplib fromemail.mime.textimportMIMEText fromemail.mime.multipartimportMIMEMultipart fromemail.headerimportHeader #Files'Paths: file1='mail.py' file2='maill.py' #收邮件的地址,可以多个。 Receivers=['receiver1@163.com','receiver2@163.com'] #邮件主题: title='PythonSMTP邮件(文件传输)' #模拟服务器 #SMTP服务器 SMTPServer="smtp.163.com" #发邮件的地址 Sender="yourname@163.com" #发送者邮件的授权密码,去163邮箱设置里获取。并非是密码。 passwd="xxx" #创建一个带附件的实例 message=MIMEMultipart() message['From']=Sender message['To']=",".join(Receivers) message['Subject']=title #邮件正文内容 message.attach(MIMEText('附件中是要传输的文件。\n','plain','utf-8')) message.attach(MIMEText('Thefilesyouneedareasfollowed.\n','plain','utf-8')) #构造附件1 att1=MIMEText(open(file1,'rb').read(),'base64','utf-8') att1["Content-Type"]='application/octet-stream' att1["Content-Disposition"]='attachment;filename={0}'.format(file1) message.attach(att1) #构造附件2 att2=MIMEText(open(file2,'rb').read(),'base64','utf-8') att2["Content-Type"]='application/octet-stream' att2["Content-Disposition"]='attachment;filename={0}'.format(file2) message.attach(att2) try: mailServer=smtplib.SMTP(SMTPServer,25)#25为端口号(邮件),0-1024都被系统占用了 #登录邮箱 mailServer.login(Sender,passwd)#需要的是,邮箱的地址和授权密码 #发送文件 mailServer.sendmail(Sender,Receivers,message.as_string()) print("邮件发送成功") print("Mailwith{0}&{1}hasbeensendto{2}successfully.".format(file1,file2,Receivers)) exceptsmtplib.SMTPExceptionase: print("Error:无法发送邮件") print(e)
后话
可以把代码加到网络train.py的最后,别忘了在train.py的开头加上:
#-*-coding:UTF-8-*- importsmtplib fromemail.mime.textimportMIMEText fromemail.mime.multipartimportMIMEMultipart fromemail.headerimportHeader
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容