From a6c7edc6fff2cd01a5029149f6d18c790ebffe84 Mon Sep 17 00:00:00 2001 From: Saurabh Date: Thu, 26 Sep 2019 12:56:00 +0530 Subject: [PATCH] feat: patch to set default incoming port to enabled email accounts --- frappe/patches.txt | 1 + .../v12_0/set_default_incoming_email_port.py | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 frappe/patches/v12_0/set_default_incoming_email_port.py diff --git a/frappe/patches.txt b/frappe/patches.txt index 5cdc089826..2d77cd4383 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -250,3 +250,4 @@ frappe.patches.v12_0.rename_events_repeat_on frappe.patches.v12_0.fix_public_private_files frappe.patches.v12_0.move_email_and_phone_to_child_table frappe.patches.v12_0.delete_duplicate_indexes +frappe.patches.v12_0.set_default_incoming_email_port diff --git a/frappe/patches/v12_0/set_default_incoming_email_port.py b/frappe/patches/v12_0/set_default_incoming_email_port.py new file mode 100644 index 0000000000..150b3641e1 --- /dev/null +++ b/frappe/patches/v12_0/set_default_incoming_email_port.py @@ -0,0 +1,29 @@ +import frappe +from frappe.email.utils import get_port + +def execute(): + ''' + 1. Set default incoming mmail port in email domin + 2. Set default incoming mmail port in all email account (for those account where domain is missing) + ''' + setup_incomming_email_port_in_email_domains() + setup_incomming_email_port_in_email_accounts() + + +def setup_incomming_email_port_in_email_domains(): + email_domains = frappe.db.get_all("Email Domain", ['incoming_port', 'use_imap', 'use_ssl', 'name']) + for domain in email_domains: + if not domain.incoming_port: + incoming_port = get_port(domain) + frappe.db.set_value("Email Domain", domain.name, 'incoming_port', incoming_port, update_modified=False) + + #update incoming email port in all + frappe.db.sql('''update `tabEmail Account` set incoming_port=%s where domain = %s''', (domain.incoming_port, domain.name)) + +def setup_incomming_email_port_in_email_accounts(): + email_accounts = frappe.db.get_all("Email Account", ['incoming_port', 'use_imap', 'use_ssl', 'name', 'enable_incoming']) + + for account in email_accounts: + if account.enable_incoming and not account.incoming_port: + incoming_port = get_port(account) + frappe.db.set_value("Email Account", account.name, 'incoming_port', incoming_port, update_modified=False)