![图片[1]-利用python自动发邮箱-uusu优素-乐高,模型,3d打印,编程](http://uusucn.zbbe.cn/wp-content/uploads/2024/01/5ecdc452d014c453.jpg)
正文
废话不多说,直接上代码。
一、普通文本邮件(作通知训练结束用 :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
    


















































 
        

暂无评论内容