ccli555


import smtplib
from email.header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.utils import formataddr



class Semail():
def __init__(self):
#发件人邮箱
self.sender = \'******@kaikeba.com\'
#发件人密码
self.password = \'******\'
#发件人邮件传输协议服务地址
self.smtpserver = \'smtp.mxhichina.com\'
# 发件人昵称
self.username = \'数据组\'
#收件人邮箱
self.receiver = [\'licongcong@kaikeba.com\']
#邮件标题
self.mail_title = \'标题:这是带附件的邮件\'
#邮件正文
self.mail_text=\'来来来,这是邮件的正文\'


def semailfun(self):
#基础信息
sender = self.sender
receiver = self.receiver
smtpserver = self.smtpserver
username = self.username
password = self.password
mail_title = self.mail_title



message = MIMEMultipart()
message[\'From\'] = formataddr([username, sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
message[\'To\'] = ",".join(receiver)
message[\'Subject\'] = Header(mail_title, \'utf-8\')
# 邮件正文内容
message.attach(MIMEText(f\'正文\', \'plain\', \'utf-8\'))

# 构造附件1(附件为TXT格式的文本)
filename = "各学科汇总.xlsx"
att2 = MIMEText(open(filename, \'rb\').read(), \'base64\', \'utf-8\')
att2["Content-Type"] = \'application/octet-stream\'
att2.add_header(\'Content-Disposition\', \'attachment\', filename=(\'gbk\', \'\', filename))
message.attach(att2)

# att3 = MIMEText(open(\'test2.xlsx\', \'rb\').read(), \'base64\', \'utf-8\')
# att3["Content-Type"] = \'application/octet-stream\'
# att3["Content-Disposition"] = \'attachment; filename="test3.xlsx"\'
# message.attach(att3)

# # 构造附件2(附件为JPG格式的图片)
# att2 = MIMEText(open(\'123.jpg\', \'rb\').read(), \'base64\', \'utf-8\')
# att2["Content-Type"] = \'application/octet-stream\'
# att2["Content-Disposition"] = \'attachment; filename="123.jpg"\'
# message.attach(att2)

# # 构造附件3(附件为HTML格式的网页)
# att3 = MIMEText(open(\'report_test.html\', \'rb\').read(), \'base64\', \'utf-8\')
# att3["Content-Type"] = \'application/octet-stream\'
# att3["Content-Disposition"] = \'attachment; filename="report_test.html"\'
# message.attach(att3)

# 发送
try:
smtpObj = smtplib.SMTP_SSL(smtpserver,465) # 注意:如果遇到发送失败的情况(提示远程主机拒接连接),这里要使用SMTP_SSL方法
smtpObj.connect(smtpserver)
smtpObj.login(sender, password)
smtpObj.sendmail(sender, receiver, message.as_string())
smtpObj.quit()
print("邮件发送成功!!!")
except Exception as e:
print("邮件发送失败")
print(e)






if __name__ == \'__main__\':
Semail().semailfun()

分类:

技术点:

相关文章: