Python开发【模块】:邮件
2024-09-24 01:35:03
邮件
1、简单发送
settings.py配置:
import os
import sys,string
from bin.start import BASE_DIR # 日志存放地址
RUN_LOG_FILE = os.path.join(BASE_DIR,'log','run.log')
ERROR_LOG_FILE = os.path.join(BASE_DIR,'log','error.log') # 邮件配置
SENDER = 'lianzhilei@yeah.net' # 发送邮件账号
RECEIVER = ['185130485@qq.com','593089304@qq.com','liuyufei@jcrb.com','lianzhilei0711@163.com',] # 接收邮件账号 多个接收账号用列表括起来[] # RECEIVER = 'lianzhilei0711@163.com' # 接收邮件账号
SMTPSERVER = 'smtp.yeah.net' # 发送邮件smtp地址
PASSWORD = 'lzl182105328' # 此为授权码需登录到邮件上设置 # 检索目录配置
DIRNAME = '/data/TRS/TRSWAS5.0/Tomcat/webapps/'
TIME = 1 #最近一天
mail.py邮件主体:
import smtplib
import traceback
from email.mime.text import MIMEText
from email.header import Header from config import settings
from lib.log import Logger def send_mail(subject,message):
'''
发送邮件
:param subject: 邮件标题
:param message: 邮件内容
:return:
'''
sender = settings.SENDER
receiver = settings.RECEIVER
smtpserver = settings.SMTPSERVER
password = settings.PASSWORD
print(receiver)
msg = MIMEText(message, 'plain', 'utf-8') # 第二个参数用plain!!不要用text!!不然报554错误
msg['Subject'] = Header(subject, 'utf-8') # 必须设置
msg['From'] = '正义检索报告<%s>'%sender # 必须设
msg['To'] = ",".join(receiver) # 必须设置 try:
smtp = smtplib.SMTP()
smtp.connect(smtpserver)
smtp.login(sender, password)
smtp.sendmail(sender, receiver, msg.as_string(),rcpt_options=receiver)
smtp.quit()
msg = '邮件发送成功'
Logger().log(msg, True)
except Exception as e:
msg = traceback.format_exc()
Logger().log(msg,False)
#!/usr/bin/env python
# -*- coding:utf- -*- import sys
import logging
import os
from config import settings class Logger(object):
__instance = None def __init__(self):
self.run_log_file = settings.RUN_LOG_FILE
self.error_log_file = settings.ERROR_LOG_FILE
self.run_logger = None
self.error_logger = None self.initialize_run_log()
self.initialize_error_log() def __new__(cls, *args, **kwargs): # 单例模式
if not cls.__instance:
cls.__instance = object.__new__(cls, *args, **kwargs)
return cls.__instance @staticmethod
def check_path_exist(log_abs_file):
log_path = os.path.split(log_abs_file)[]
if not os.path.exists(log_path):
os.mkdir(log_path) def initialize_run_log(self):
self.check_path_exist(self.run_log_file)
file_1_1 = logging.FileHandler(self.run_log_file, 'a', encoding='utf-8')
fmt = logging.Formatter(fmt="%(asctime)s - %(levelname)s : %(message)s")
file_1_1.setFormatter(fmt)
logger1 = logging.getLogger('run_log') # 'run_log' 随意写
logger1.setLevel(logging.INFO) # 效果与error里logging.Logger一样
logger1.addHandler(file_1_1)
self.run_logger = logger1 def initialize_error_log(self):
self.check_path_exist(self.error_log_file)
file_1_1 = logging.FileHandler(self.error_log_file, 'a', encoding='utf-8')
fmt = logging.Formatter(fmt="%(asctime)s - %(levelname)s : %(message)s")
file_1_1.setFormatter(fmt)
logger1 = logging.Logger('run_log', level=logging.ERROR)
logger1.addHandler(file_1_1)
self.error_logger = logger1 def log(self, message, mode=True):
"""
写入日志
:param message: 日志信息
:param mode: True表示运行信息,False表示错误信息
:return:
"""
if mode:
self.run_logger.info(message)
else:
self.error_logger.error(message)
log.py文件
最新文章
- Python之路【第十一篇续】前端初识之CSS
- Protocol Buffers动态消息解析
- 腾讯即时聊天sdk
- Scala学习之: Hello Word!
- c#获取网页内容的三种方法
- java创建Date日期时间笔记
- Linux 内核模块设计
- jQuery Mobile里xxx怎么用呀?(控件篇)
- Windows server 2008下开启telnet功能
- find job
- c++到c#数据类型的转换
- PHP - session编码和解码
- HDU 4350 Card
- 促销R语言应用性能
- C++ 编译报错discards qualifiers [-fpermissive]
- DirectDraw用到的DDSURFACEDESC2
- 【原创】MySQL(Innodb)索引的原理
- Java多线中基础知识整理
- 【python-strip】Python strip()方法
- 《Two Dozen Short Lessons in Haskell》(二十四)代数类型
热门文章
- smrt analysis 软件安装
- Nginx的启动与停止,重启
- JQuery元素控制方法汇总
- opengl 模板测试 glStencilOp glStencilFunc
- 码农小汪-Hibernate学习8-hibernate关联关系注解表示@OneToMany mappedBy @ManyToMany @JoinTable
- Mysql课后思考题
- mongoDB在windows64上安装
- osgEarth的agglite插件使用例子feature_rasterize.earth
- ajax操作的链式写法
- poj2096 Collecting Bugs[期望dp]