From daf8f5545820a26b114102dded3733b2c777ae86 Mon Sep 17 00:00:00 2001 From: Ritvik Sardana Date: Sat, 19 Jul 2025 11:59:10 +0530 Subject: [PATCH 1/3] feat: auto append email account to the document --- frappe/core/doctype/doctype/doctype.json | 9 ++++++++- frappe/core/doctype/doctype/doctype.py | 1 + frappe/custom/doctype/customize_form/customize_form.json | 9 ++++++++- frappe/custom/doctype/customize_form/customize_form.py | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/frappe/core/doctype/doctype/doctype.json b/frappe/core/doctype/doctype/doctype.json index dfcb88b2ff..b14d15f336 100644 --- a/frappe/core/doctype/doctype/doctype.json +++ b/frappe/core/doctype/doctype/doctype.json @@ -77,6 +77,7 @@ "email_append_to", "sender_field", "sender_name_field", + "sender_email_account_field", "subject_field", "fields_tab", "fields_section", @@ -707,6 +708,12 @@ "fieldtype": "Int", "label": "Rows Threshold for Grid Search", "non_negative": 1 + }, + { + "depends_on": "email_append_to", + "fieldname": "sender_email_account_field", + "fieldtype": "Data", + "label": "Sender Email Account Field" } ], "grid_page_length": 50, @@ -785,7 +792,7 @@ "link_fieldname": "document_type" } ], - "modified": "2025-06-24 07:46:34.380662", + "modified": "2025-07-19 11:56:19.636440", "modified_by": "Administrator", "module": "Core", "name": "DocType", diff --git a/frappe/core/doctype/doctype/doctype.py b/frappe/core/doctype/doctype/doctype.py index 1b94db76a9..03226b91ce 100644 --- a/frappe/core/doctype/doctype/doctype.py +++ b/frappe/core/doctype/doctype/doctype.py @@ -163,6 +163,7 @@ class DocType(Document): row_format: DF.Literal["Dynamic", "Compressed"] rows_threshold_for_grid_search: DF.Int search_fields: DF.Data | None + sender_email_account_field: DF.Data | None sender_field: DF.Data | None sender_name_field: DF.Data | None show_name_in_global_search: DF.Check diff --git a/frappe/custom/doctype/customize_form/customize_form.json b/frappe/custom/doctype/customize_form/customize_form.json index 32e25ae29e..5fac3799ae 100644 --- a/frappe/custom/doctype/customize_form/customize_form.json +++ b/frappe/custom/doctype/customize_form/customize_form.json @@ -49,6 +49,7 @@ "email_append_to", "sender_field", "sender_name_field", + "sender_email_account_field", "subject_field", "section_break_8", "sort_field", @@ -415,6 +416,12 @@ "fieldname": "protect_attached_files", "fieldtype": "Check", "label": "Protect Attached Files" + }, + { + "depends_on": "email_append_to", + "fieldname": "sender_email_account_field", + "fieldtype": "Data", + "label": "Sender Email Account Field" } ], "hide_toolbar": 1, @@ -423,7 +430,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2025-03-27 18:22:32.618603", + "modified": "2025-07-19 11:56:01.780636", "modified_by": "Administrator", "module": "Custom", "name": "Customize Form", diff --git a/frappe/custom/doctype/customize_form/customize_form.py b/frappe/custom/doctype/customize_form/customize_form.py index 3bbd874732..585b76f544 100644 --- a/frappe/custom/doctype/customize_form/customize_form.py +++ b/frappe/custom/doctype/customize_form/customize_form.py @@ -75,6 +75,7 @@ class CustomizeForm(Document): queue_in_background: DF.Check quick_entry: DF.Check search_fields: DF.Data | None + sender_email_account_field: DF.Data | None sender_field: DF.Data | None sender_name_field: DF.Data | None show_preview_popup: DF.Check From a5ab9c12b50beecf39b53a2f14751f34d89fe2e1 Mon Sep 17 00:00:00 2001 From: Ritvik Sardana Date: Sat, 19 Jul 2025 12:06:27 +0530 Subject: [PATCH 2/3] fix: attach email account name to the append_to doctype --- frappe/email/receive.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/frappe/email/receive.py b/frappe/email/receive.py index 5907528f38..bc3da4715d 100644 --- a/frappe/email/receive.py +++ b/frappe/email/receive.py @@ -850,6 +850,9 @@ class InboundMail(Email): if email_fields.sender_name_field: parent.set(email_fields.sender_name_field, frappe.as_unicode(self.from_real_name)) + if email_fields.sender_email_account_field: + parent.set(email_fields.sender_email_account_field, self.email_account.name) + parent.flags.ignore_mandatory = True try: @@ -891,7 +894,7 @@ class InboundMail(Email): """Return Email related fields of a doctype.""" fields = frappe._dict() - email_fields = ["subject_field", "sender_field", "sender_name_field"] + email_fields = ["subject_field", "sender_field", "sender_name_field", "sender_email_account_field"] meta = frappe.get_meta(doctype) for field in email_fields: From b3afe4f4f12c660e468e44b9fac7f564e711ad9b Mon Sep 17 00:00:00 2001 From: Ritvik Sardana Date: Sat, 19 Jul 2025 12:26:36 +0530 Subject: [PATCH 3/3] chore: rename email account field --- frappe/core/doctype/doctype/doctype.json | 8 ++++---- frappe/core/doctype/doctype/doctype.py | 2 +- frappe/custom/doctype/customize_form/customize_form.json | 8 ++++---- frappe/custom/doctype/customize_form/customize_form.py | 2 +- frappe/email/receive.py | 6 +++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/frappe/core/doctype/doctype/doctype.json b/frappe/core/doctype/doctype/doctype.json index b14d15f336..6a035986b3 100644 --- a/frappe/core/doctype/doctype/doctype.json +++ b/frappe/core/doctype/doctype/doctype.json @@ -77,7 +77,7 @@ "email_append_to", "sender_field", "sender_name_field", - "sender_email_account_field", + "recipient_account_field", "subject_field", "fields_tab", "fields_section", @@ -711,9 +711,9 @@ }, { "depends_on": "email_append_to", - "fieldname": "sender_email_account_field", + "fieldname": "recipient_account_field", "fieldtype": "Data", - "label": "Sender Email Account Field" + "label": "Recipient Account Field" } ], "grid_page_length": 50, @@ -792,7 +792,7 @@ "link_fieldname": "document_type" } ], - "modified": "2025-07-19 11:56:19.636440", + "modified": "2025-07-19 12:23:16.296416", "modified_by": "Administrator", "module": "Core", "name": "DocType", diff --git a/frappe/core/doctype/doctype/doctype.py b/frappe/core/doctype/doctype/doctype.py index 03226b91ce..845dbf5219 100644 --- a/frappe/core/doctype/doctype/doctype.py +++ b/frappe/core/doctype/doctype/doctype.py @@ -158,12 +158,12 @@ class DocType(Document): queue_in_background: DF.Check quick_entry: DF.Check read_only: DF.Check + recipient_account_field: DF.Data | None restrict_to_domain: DF.Link | None route: DF.Data | None row_format: DF.Literal["Dynamic", "Compressed"] rows_threshold_for_grid_search: DF.Int search_fields: DF.Data | None - sender_email_account_field: DF.Data | None sender_field: DF.Data | None sender_name_field: DF.Data | None show_name_in_global_search: DF.Check diff --git a/frappe/custom/doctype/customize_form/customize_form.json b/frappe/custom/doctype/customize_form/customize_form.json index 5fac3799ae..03ac4d1761 100644 --- a/frappe/custom/doctype/customize_form/customize_form.json +++ b/frappe/custom/doctype/customize_form/customize_form.json @@ -49,7 +49,7 @@ "email_append_to", "sender_field", "sender_name_field", - "sender_email_account_field", + "recipient_account_field", "subject_field", "section_break_8", "sort_field", @@ -419,9 +419,9 @@ }, { "depends_on": "email_append_to", - "fieldname": "sender_email_account_field", + "fieldname": "recipient_account_field", "fieldtype": "Data", - "label": "Sender Email Account Field" + "label": "Recipient Account Field" } ], "hide_toolbar": 1, @@ -430,7 +430,7 @@ "index_web_pages_for_search": 1, "issingle": 1, "links": [], - "modified": "2025-07-19 11:56:01.780636", + "modified": "2025-07-19 12:23:41.564203", "modified_by": "Administrator", "module": "Custom", "name": "Customize Form", diff --git a/frappe/custom/doctype/customize_form/customize_form.py b/frappe/custom/doctype/customize_form/customize_form.py index 585b76f544..584882a754 100644 --- a/frappe/custom/doctype/customize_form/customize_form.py +++ b/frappe/custom/doctype/customize_form/customize_form.py @@ -74,8 +74,8 @@ class CustomizeForm(Document): protect_attached_files: DF.Check queue_in_background: DF.Check quick_entry: DF.Check + recipient_account_field: DF.Data | None search_fields: DF.Data | None - sender_email_account_field: DF.Data | None sender_field: DF.Data | None sender_name_field: DF.Data | None show_preview_popup: DF.Check diff --git a/frappe/email/receive.py b/frappe/email/receive.py index bc3da4715d..a0409c7909 100644 --- a/frappe/email/receive.py +++ b/frappe/email/receive.py @@ -850,8 +850,8 @@ class InboundMail(Email): if email_fields.sender_name_field: parent.set(email_fields.sender_name_field, frappe.as_unicode(self.from_real_name)) - if email_fields.sender_email_account_field: - parent.set(email_fields.sender_email_account_field, self.email_account.name) + if email_fields.recipient_account_field: + parent.set(email_fields.recipient_account_field, self.email_account.name) parent.flags.ignore_mandatory = True @@ -894,7 +894,7 @@ class InboundMail(Email): """Return Email related fields of a doctype.""" fields = frappe._dict() - email_fields = ["subject_field", "sender_field", "sender_name_field", "sender_email_account_field"] + email_fields = ["subject_field", "sender_field", "sender_name_field", "recipient_account_field"] meta = frappe.get_meta(doctype) for field in email_fields: