univention.mail package#

Submodules#

univention.mail.dovecot module#

class univention.mail.dovecot.DovecotListener(listener: str, name: str)[source]#

Bases: object

log_p(msg: str) None[source]#
log_e(msg: str) None[source]#
new_email_account(email: str) None[source]#
delete_email_account(dn: str, email: str) None[source]#
read_from_ext_proc_as_root(cmd: Sequence[str], regexp: str | None = None, stdin: str | None = None, stdout: Any = -1, stderr: Any = None, stdin_input: Any = None) str[source]#

Wrapper around Popen(), runs external command as root and return its output, optionally the first hit of a regexp. May raise an exception.

Parameters:
  • cmd – list: with executable path as first item

  • regexp – string: regexp for re.findall()

Returns:

string

move_user_home(newMailPrimaryAddress: str, oldMailPrimaryAddress: str, force_rename: bool = False) None[source]#
move_mail_home(old_path: str, new_path: str, email: str, force_rename: bool = False) None[source]#
get_maillocation() str[source]#
upload_activate_sieve_script(email: str, file: str) None[source]#
get_user_home(username: str) str[source]#
get_masteruser_credentials() tuple[str, str][source]#
get_dovecot_user() tuple[str, str][source]#
mkdir_p(dir: str) None[source]#
classmethod chown_r(path: str, uid: int, gid: int) None[source]#

Recursively set owner and group on a file/directory and its subdirectories.

Parameters:
  • path (str) – file/directory (and its subdirectories) to change ownership on

  • uid (int) – UID to set

  • gid (int) – GID to set

Returns:

None

univention.mail.dovecot_shared_folder module#

class univention.mail.dovecot_shared_folder.DovecotFolderAclEntry(folder_name: str, identifier: str, acl: str)[source]#

Bases: object

classmethod from_str(line: str) Self[source]#
class univention.mail.dovecot_shared_folder.DovecotGlobalAclFile(listener: Any)[source]#

Bases: object

dovemail_gid = 102#
add_acls(acl_list: list[DovecotFolderAclEntry]) None[source]#
remove_acls(folder_name: str) None[source]#
class univention.mail.dovecot_shared_folder.DovecotSharedFolderListener(*args, **kwargs)[source]#

Bases: DovecotListener

add_shared_folder(new: dict[str, list[bytes]]) None[source]#
del_shared_folder(old: dict[str, list[bytes]]) None[source]#
mod_shared_folder(old: dict[str, list[bytes]], new: dict[str, list[bytes]]) None[source]#
get_public_location(ns: str) str[source]#
create_public_folder(folder_name: str) str[source]#
read_from_ext_proc_as_root(cmd, regexp=None, stdin=None, stdout=-1, stderr=None, stdin_input=None)[source]#

Wrapper around Popen(), runs external command as root and return its output, optionally the first hit of a regexp. May raise an exception.

Parameters:
  • cmd – list: with executable path as first item

  • regexp – string: regexp for re.findall()

Returns:

string

doveadm_set_mailbox_acls(mailbox: str, acls: list[str]) None[source]#
imap_set_mailbox_acls(mb_owner: str, mailbox: str, acls: list[str]) None[source]#
update_public_mailbox_configuration(delete_only: str | None = None) None[source]#

Cache public folders and their quota into a UCRV.

Parameters:

delete_only – if True removes only entry ‘delete_only’, else recreates from scratch.

Returns:

None

unsubscribe_from_mailbox(users: list[str], mailbox: str) None[source]#
get_udm_infos(udm_module: Any, udm_filter: str) list[Any][source]#
add_global_acls(new: dict[str, list[bytes]]) None[source]#
remove_global_acls(old: dict[str, list[bytes]]) None[source]#