class Validations: def __init__(self): self.config = ReConfig() self.OUR_DOMAIN = self.config.get_ourdomain() def re_readconfig(self): del self.config self.config = ReConfig() self.OUR_DOMAIN = self.config.get_ourdomain() def getdomain(self, a): return a.split('@')[-1] def getuserid(self, a): return a.split('@')[0] def isourdomain(self, a): return self.getdomain(a) == self.OUR_DOMAIN def valid_uuid4(self, a): userid = self.getuserid(a) try: val = uuid.UUID(userid, version=4) except ValueError: # If it's a value error, then the string # is not a valid hex code for a UUID. return False # If the uuid_string is a valid hex code, # but an invalid uuid4, # the UUID.__init__ will convert it to a # valid uuid4. This is bad for validation purposes. return val.hex == userid def isregistereduser(self, a): """ check whether the user address is a registered one or generated one """ return not self.valid_uuid4(a)
import logging import logging.handlers import pickle import sys import uuid from email.mime.text import MIMEText from redis import StrictRedis from config import ReConfig instance = "0" logger = logging.getLogger('genbouncemailhandle') readdress_configs = ReConfig() rclient = StrictRedis() ps = rclient.pubsub() ps.subscribe(['configmodified']) html = """\ <html> <head></head> <body> <p>Hi!<br>   {}<br> Kindly do not reply to this mail. <br>Regards,<br> Re@address Team<br> </p> </body> </html>
import re import sys import uuid from email.utils import parseaddr from redis import StrictRedis from validate_email import validate_email import dbops import validations from config import ReConfig instance = "0" logger = logging.getLogger('mailHandler') readdress_configs = ReConfig() support_mail = readdress_configs.ConfigSectionMap('SUPPORT')['SUPPORT_MAIL'] feedback_mail = readdress_configs.ConfigSectionMap('FEEDBACK')['FEEDBACK_MAIL'] contact_mail = readdress_configs.ConfigSectionMap('CONTACT')['CONTACT_MAIL'] supportlist = [support_mail, feedback_mail, contact_mail] #class for all db operations using mongodb db = dbops.MongoORM() #instanttiate class for common validations valids = validations.Validations() #below regex objs are for handling new thread mails taddrcomp = re.compile('([\w.-]+(#)[\w.-]+)@' + readdress_configs.get_ourdomain())
def re_readconfig(self): del self.config self.config = ReConfig() self.OUR_DOMAIN = self.config.get_ourdomain()
def __init__(self): self.config = ReConfig() self.OUR_DOMAIN = self.config.get_ourdomain()
'--instance', help='Instance Num of this script ', required=True) args = parser.parse_args() argsdict = vars(args) instance = argsdict['instance'] handler = ('EMAIL SENDER-[' + instance + ']') formatter = ( '\n' + handler + ':%(asctime)s-[%(filename)s:%(lineno)s]-%(levelname)s - %(message)s') logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, format=formatter) logger = logging.getLogger('mailer' + instance) readdress_configs = ReConfig() mailerbackup = 'mailer_' + instance logger.info("Starting email sender") while True: del readdress_configs readdress_configs = ReConfig() if (rclient.llen(mailerbackup)): item = rclient.brpop(mailerbackup) message = pickle.loads(item[1]) mailcontent = pystache.render( mailtemplates[message['template_name']]['template'], message.get('global_merge_vars', '')) msg = msg = MIMEText(mailcontent, 'html')
import re import sys import uuid from email.utils import parseaddr from redis import StrictRedis from validate_email import validate_email import dbops import validations from config import ReConfig instance = "0" logger = logging.getLogger('supportChannel') readdress_configs = ReConfig() #class for all db operations using mongodb db = dbops.MongoORM() #instanttiate class for common validations valids = validations.Validations() #below regex objs are for handling new thread mails taddrcomp = re.compile('([\w.-]+(#)[\w.-]+)@' + readdress_configs.get_ourdomain()) subcomp = re.compile('#') rclient = StrictRedis() ps = rclient.pubsub()
import pickle import hashlib import hmac import base64 import datetime import pluscodes from tornado.log import logging, gen_log from motor import MotorClient from tornado.gen import coroutine from redis import StrictRedis from validate_email import validate_email from validations import PhoneValidations from tornado.httpclient import AsyncHTTPClient from config import ReConfig readdress_configs = ReConfig() #default_configs = readdress_configs.ConfigSectionMap('DEFAULT') OUR_DOMAIN = readdress_configs.get_ourdomain() if OUR_DOMAIN is None: raise ValueError("OUR_DOMAIN Not configured") class BaseHandler(tornado.web.RequestHandler): def validate(self, request): gen_log.info('authenticatepost for ' + request.path) authkey = self.settings['Mandrill_Auth_Key'][request.path].encode() if 'X-Mandrill-Signature' in request.headers: rcvdsignature = request.headers['X-Mandrill-Signature'] else: gen_log.info('Invalid post from ' + request.remote_ip) return False