python发送邮件的接口
# -*- coding: utf-8 -*- # @Time : 2020-07-14 # @Author : pugongying import smtplib from email.mime.text import MIMEText from email.utils import formatdate from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication import os import time def get_monthdate_time(): return (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) class SendMail(): # 初始化内容 def __init__(self, smtpHost, sslPort, fromMail, toMail, username, password, errorLogDirFile): self.smtpHost = smtpHost self.sslPort = sslPort self.fromMail = fromMail self.toMail = toMail self.username = username self.password = password self.errorLogDirFile = errorLogDirFile def mailInfo(self): # 邮件主题 subject = u'app arms alter info' Date = get_monthdate_time() # 文本内容 YY-MM-DD + 内容 content = str(Date) + ' ' + u'app arms alter info' # 定义邮件格式 textApart = MIMEText(content) mail = MIMEMultipart() errr_log = self.errorLogDirFile read_error_log = MIMEApplication(open(errr_log, 'rb').read()) filename = os.path.basename(self.errorLogDirFile) read_error_log.add_header('Content-Disposition', 'attachment', filename=filename) mail.attach(textApart) mail.attach(read_error_log) # 邮件内容 mail['Subject'] = Header(subject) mail['From'] = self.fromMail mail['To'] = ",".join(self.toMail) mail['Date'] = formatdate() return mail def sendMail(self): try: mail = self.mailInfo() smtp = smtplib.SMTP_SSL(self.smtpHost, self.sslPort) smtp.ehlo() smtp.login(self.username, self.password) smtp.sendmail(self.fromMail, self.toMail, mail.as_string()) smtp.close() print("ok") except Exception as e: print(e) if __name__ == '__main__': file_name = 'file_name.txt' toMail = ['admin@admin.com'] s = SendMail("smtp.mxhichina.com", "465", "admin@admin.com", toMail, "admin@admin.com", "123456***", file_name) s.sendMail()
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通