2019独角兽企业重金招聘Python工程师标准>>>
web.py是一个轻量级Python web框架,它简单而且功能强大。web.py是个开源项目。该框架由已故美国作家、Reddit联合创始人、RSS规格合作者、著名计算机黑客Aaron Swartz开发。web.py目前已被多家大型网站所用。web.py简单易学,只要有python基础,掌握web.py就非常容易。
1. web.py发送邮件:
email_test.py
# -*- coding: utf-8 -*-from famiover.config.EmailConfig import EmailConfig
from famiover.util.email_util import send_emailif __name__ == "__main__":ec = EmailConfig()# 附件内容attachments = ['文件']# 抄送者cc = ['famiover@163.com']ec.config_default(header='headers', attachments=attachments, cc=cc)send_email(ec)
EmailConfig.py
# -*- coding: utf-8 -*-import osimport web
from famiover.model.response import response
from famiover.util.object_util import *class EmailConfig(object):"""Email默认配置"""def __init__(self):self.attachments = []self.response = response()self.message = '详情请查看附件内容' # 邮件内容self.subject = '邮件主题' # 邮件主题self.to_address = ['famiover@163.com'] # 收件人邮箱self.from_password = 'from_password ' # 发件人邮箱密码self.from_address = 'famiover@163.com' # 发件人邮箱def config_param(self, params):"""设置额外参数"""for key, value in params.items():setattr(self, key, value)def config_validate(self):""""邮件配置验"""res = response()# 1.检查附件文件是否存在if has_property_len_ge_0(self, 'attachments'):for attachment in self.attachments:if not os.path.exists(attachment):res.isOk = Falseres.message = '附件%s文件不存在!' % attachmentreturn res# 2.检查发件人if not (self.from_address and self.from_password):res.isOk = Falseres.message = '发件人信息不对!'return resreturn resdef config_web_default(self):"""默认邮件配置"""web.config.smtp_server = 'smtp.exmail.qq.com'web.config.smtp_port = 25web.config.smtp_username = self.from_addressweb.config.smtp_password = self.from_passworddef config_default(self, **params):"""默认邮件配置"""self.config_web_default()add_property_with_params(self, params)
send_email.py
# -*- coding: utf-8 -*-import web
from famiover.util.object_util import *def send_email(config):"""根据配置对象发送邮件"""# 发件人from_address = config.from_address# 收件人to_address = config.to_address# 邮件主题subject = config.subject# 邮件消息message = config.message# 额外参数extra_param = {}if has_property_len_ge_0(config, 'attachments'):extra_param['attachments'] = config.attachments# 抄送if has_property_len_ge_0(config, 'cc'):extra_param['cc'] = config.cc# 暗送if has_property_len_ge_0(config, 'bcc'):extra_param['bcc'] = config.bccres = config.responseif res.isOk:if len(extra_param) > 0:web.sendmail(from_address, to_address, subject, message, **extra_param)else:web.sendmail(from_address, to_address, subject, message)else:print(res.message)
response.py
# -*- coding: utf-8 -*-class response:'验证结果实体类'# 返回消息__message = ''# 验证是否通过__isOk = Truedef __init__(self):pass@propertydef message(self):return self.__message@message.setterdef message(self, message):self.__message = message@propertydef isOk(self):return self.__isOk@isOk.setterdef isOk(self, isOk):self.__isOk = isOk