def send_order_status(req, order): """ Send order status to order email. This function call calculate on order and create sha """ cfg = Object() cfg.addresses_country = req.cfg.addresses_country cfg.addresses_region = req.cfg.addresses_region cfg.eshop_currency = req.cfg.eshop_currency order.calculate() # calculate summary order.sha = sha1(str(order.create_date)).hexdigest() try: # TODO: use lang from cart when order was create req.smtp.send_email_alternative( morias_template(req, 'mail/eshop/order_subject.jinja', order=order).encode('utf-8'), # subject order.email, morias_template(req, 'mail/eshop/order.jinja', order=order, cfg=cfg).encode('utf-8'), # body morias_template(req, 'mail/eshop/order.html', order=order, cfg=cfg).encode('utf-8'), # body logger=req.log_info) except Exception as e: req.log_error('Mailing order[%d] error: %s' % (order.id, str(e)), state.LOG_ERR)
def send_login_created(req, login, sign_up=False): try: req.smtp.send_email_alternative( morias_template(req, "mail/login/created_subject.jinja", item=login, sign_up=sign_up).encode( # subject "utf-8" ), login.email, morias_template(req, "mail/login/created.jinja", item=login, sign_up=sign_up).encode("utf-8"), # body morias_template(req, "mail/login/created.html", item=login, sign_up=sign_up).encode("utf-8"), # body logger=req.log_info, ) except Exception: req.log_error("Login created [%s] error: \n%s" % (login.email, format_exc()), state.LOG_ERR)
def send_log_in_link(req, login, host, browser): try: req.smtp.send_email_alternative( morias_template(req, "mail/login/log_in_link_subject.jinja", item=login, host=host, browser=browser).encode( "utf-8" ), login.email, morias_template(req, "mail/login/log_in_link.jinja", item=login, host=host, browser=browser).encode( # body "utf-8" ), morias_template(req, "mail/login/log_in_link.html", item=login, host=host, browser=browser).encode( # body "utf-8" ), logger=req.log_info, ) except: req.log_error("Log-in link [%s] error: \n%s" % (login.email, format_exc()), state.LOG_ERR) raise
def send_verify_email(req, login, old_email, host, browser): try: req.smtp.send_email_alternative( morias_template( req, "mail/login/verify_subject.jinja", # subject item=login, old_email=old_email, host=host, browser=browser, ).encode("utf-8"), login.email, morias_template( req, "mail/login/verify.jinja", item=login, old_email=old_email, host=host, browser=browser # body ).encode("utf-8"), morias_template( req, "mail/login/verify.html", item=login, old_email=old_email, host=host, browser=browser # body ).encode("utf-8"), logger=req.log_info, ) except Exception: req.log_error("Login forget [%s] error: \n%s" % (login.email, format_exc()), state.LOG_ERR)
def form_send(req): locale = req.args.getfirst('locale', get_lang(req), uni) menu = req.cfg.get_static_menu(req) fdict = dict((key, uni(req.form.getvalue(key))) for key in req.form.keys()) form_obj = req.cfg.forms[req.uri.split('/')[-1]] qid, question, answer = (0, '', form_obj.answer) status = None if req.method == 'POST': if form_obj.protection: robot = True if req.form.getfirst("robot", "", str) else False if not form_obj.answer: qid = int(req.form.getfirst("qid", '0', str), 16) question, answer = robot_questions[qid] check = req.form.getfirst("answer", "", str) == answer else: robot = False check = True # endif required = [] # check email if exist if 'email' in req.form: if not Email.check(req.form.getfirst("email", fce=str)): required.append('email') for it in form_obj.required: if it not in req.form: required.append(it) if robot or not check or required: return generate_page( req, req.cfg.form_web_templates + form_obj.template + '.html', question=question, answer=answer, qid=hex(qid), form=fdict, menu=menu, lang=locale, required=required, robot=robot, check=check) # else kwargs = {'logger': req.log_info} if 'email' in req.form: kwargs['reply'] = req.form.getfirst('email', '', str) status = False try: req.smtp.send_email_txt( form_obj.subject, # subject form_obj.recipient, # recipient morias_template( req, req.cfg.form_mail_templates + form_obj.template + '.txt', form=fdict).encode('utf-8'), # body **kwargs) # logger + reply fdict = {} status = True except Exception as e: req.log_error('Mail form: %s', str(e), state.LOG_ERROR) status = False # else (reg.method != POST) if form_obj.protection and not form_obj.answer: qid = randint(0, len(robot_questions)-1) question, answer = robot_questions[qid] return generate_page( req, req.cfg.form_web_templates + form_obj.template + '.html', question=question, answer=answer, qid=hex(qid), form=fdict, menu=menu, lang=locale, status=status)