def mail_users_add(): try: return add_mail_user( request.form.get("email", ""), request.form.get("password", ""), request.form.get("privileges", ""), env ) except ValueError as e: return (str(e), 400)
def mail_users_add(): try: return add_mail_user(request.form.get('email', ''), request.form.get('password', ''), request.form.get('privileges', ''), env) except ValueError as e: return (str(e), 400)
def mail_users_add(): quota = request.form.get('quota', get_default_quota(env)) try: return add_mail_user(request.form.get('email', ''), request.form.get('password', ''), request.form.get('privileges', ''), quota, env) except ValueError as e: return (str(e), 400)
def mail_users_add(): return add_mail_user(request.form.get('email', ''), request.form.get('password', ''), request.form.get('privileges', ''), env)
def create_bot_account_post(user): # noqa: E501 """Create a bot email account to send/receive messages from. # noqa: E501 :param user: The bot user to send/receive messages from. :type user: dict | bytes :rtype: bool """ bots_r = redis.StrictRedis(host='localhost', port=6379, db=2) deactivated_bots_r = redis.StrictRedis(host='localhost', port=6379, db=3) reactivating = False if connexion.request.is_json: user = User.from_dict(connexion.request.get_json()) # noqa: E501 # Load mailinabox env variables env = utils.load_environment() # If we're reactivating a deactivated bot account, delete it from the deactivated list if user.email_address.encode('utf-8') in deactivated_bots_r.scan_iter(): deactivated_bots_r.delete(user.email_address) reactivating = True # Load bot credentials file with open('{}/bcr.json'.format(seemail_path), 'r') as f: creds = json.load(f) # Generate a password and create the actual email account if user.email_address in creds: pwd = creds[user.email_address] else: pwd = generate_password() creds[user.email_address] = pwd with open('{}/bcr.json'.format(seemail_path), 'w') as f: json.dump(creds, f) # Add mailbox for bot res = mailconfig.add_mail_user(user.email_address, pwd, "", env) # Add to our Redis bot account db res = bots_r.set(user.email_address, 1) # Add first and last names to names sqlite db (separate from the mailinabox # db file to avoid messing up any of their management services) conn1 = sql.connect('{}/users.sqlite'.format(mail_home)) conn2 = sql.connect('{}/user_names.sqlite'.format(mail_home)) cur1 = conn1.cursor() cur2 = conn2.cursor() user_id = cur1.execute('select id from users where email="{}"'.format(user.email_address)).fetchone()[0] try: cur2.execute('insert into names values ({}, "{}", "{}", "{}")'.format(user_id, user.first_name, user.last_name, user.email_address)) except sql.IntegrityError: pass # User already in the names DB, might hit this when reactivating an existing bot conn2.commit() cur1.close() cur2.close() conn1.close() conn2.close() if reactivating is False: logging.info("Added bot account {}".format(user.email_address)) else: logging.info("Reactivated bot account {}".format(user.email_address)) return res
import os, os.path, re, json import auth, utils import csv import sys from mailconfig import get_mail_users, get_mail_users_ex, get_admins, add_mail_user, set_mail_password, remove_mail_user from mailconfig import get_mail_user_privileges, add_remove_mail_user_privilege from mailconfig import get_mail_aliases, get_mail_aliases_ex, get_mail_domains, add_mail_alias, remove_mail_alias userfile = sys.argv[1] env = utils.load_environment() # print(userfile) # print(env) with open(userfile) as usercsv: rows = csv.reader(usercsv, delimiter=",") for row in rows: try: out = add_mail_user(row[0], row[1], "", env) print(row[0] + " -> " + out[0]) except Exception as e: print(e)