發郵件:https://www.cnblogs.com/hudieren/p/16792041.html
收郵件:https://www.cnblogs.com/hudieren/p/16792045.html
決議郵件:https://www.cnblogs.com/hudieren/p/16792096.html
# -*- coding: utf-8 -*- # @Author : 107 # @File : emaildriver.py # @explain : 發郵件 import json import re import smtplib import email import time from email.mime.text import MIMEText from email.utils import formataddr from email.mime.multipart import MIMEMultipart import imaplib import os class SendEmail: def __init__(self, sender, sender_name, sender_token, attn, attn_name, subject, connect, files, server): """ :param sender: 發件人郵箱賬號 :param sender_name: 發件人郵箱昵稱 :param sender_token: 發件人郵箱密碼(當時申請smtp給的口令) :param attn: 收件人郵箱賬號 :param attn_name: 收件人郵箱昵稱 :param subject: 主題 :param connect: 內容 :param files: 附件,格式:{'path': '路徑', 'read': 'r', 'encoding': 'utf-8', '_charset': 'utf-8', 'name': '檔案名'} :param server: 郵件服務器地址 """ self.sender = sender self.sender_name = sender_name self.sender_token = sender_token self.attn = attn self.attn_name = attn_name self.subject = subject self.connect = connect self.files = files self.server = server def accessory(self, file): """ 處理單個附件 :param file: :return: """ path = file.get('path') rea = file.get('read') e = file.get('encoding') _charset = file.get('_charset') name = file.get('name') if not name: name = os.path.split(path)[-1] if e: with open(path, rea, encoding=e) as r: connect = r.read() else: with open(path, rea) as r: connect = r.read() acc = MIMEText(connect, _charset=_charset) acc["Content-Type"] = 'application/octet-stream' # 不能兼容outlook # acc1["Content-Disposition"] = f'attachment; filename="{name}"' # 可以兼容outlook acc.add_header("Content-Disposition", "attachment", filename=("gb18030", "", name)) return acc def send_email(self): # connect = "這是我使用python smtplib及email模塊發送的郵件" # 正文 msg = MIMEMultipart() # 括號里的對應發件人郵箱昵稱、發件人郵箱賬號 msg['From'] = formataddr([self.sender_name, self.sender]) # 括號里的對應收件人郵箱昵稱、收件人郵箱賬號 msg['To'] = formataddr([self.attn_name, self.attn]) # 郵件的主題,也可以說是標題 msg['Subject'] = self.subject # 正文 msg.attach(MIMEText(self.connect, _charset='utf-8')) # 附件 for file in self.files: acc = self.accessory(file) msg.attach(acc) # 發件人郵箱中的SMTP服務器,埠是465 # server = smtplib.SMTP_SSL("smtp.qq.com", 465) server = smtplib.SMTP_SSL(self.server, 465) # 括號中對應的是發件人郵箱賬號、郵箱密碼 server.login(self.sender, self.sender_token) # 括號中對應的是發件人郵箱賬號、收件人郵箱賬號、發送郵件 server.sendmail(self.sender, [self.attn, ], msg.as_string()) server.quit() # 關閉連接 def run(self): # self.send_email() try: self.send_email() return True except Exception as e: print(e.args)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/514246.html
標籤:其他
上一篇:【python】準點跑路人必備小程式~ 不信你用不到
下一篇:go入坑記錄 檔案斷點重傳
