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()

posted @ 2022-06-07 14:00  蒲公英PGY  阅读(39)  评论(0编辑  收藏  举报