fix: IMAP E-Mail Sent Folder Customization

Fixes https://github.com/frappe/frappe/issues/28630
This commit is contained in:
0xD0M1M0 2024-12-04 23:37:52 +01:00
parent d3cbd2d4be
commit 69670229bd
4 changed files with 25 additions and 7 deletions

View file

@ -51,6 +51,7 @@
"imap_folder",
"section_break_12",
"append_emails_to_sent_folder",
"sent_folder_name",
"append_to",
"create_contact",
"enable_automatic_linking",
@ -691,12 +692,19 @@
"fieldname": "backend_app_flow",
"fieldtype": "Check",
"label": "Authenticate as Service Principal"
},
{
"depends_on": "eval:!doc.domain && doc.enable_outgoing && doc.enable_incoming && doc.use_imap",
"fetch_from": "domain.sent_folder_name",
"fieldname": "sent_folder_name",
"fieldtype": "Data",
"label": "Sent Folder Name"
}
],
"icon": "fa fa-inbox",
"index_web_pages_for_search": 1,
"links": [],
"modified": "2024-11-11 10:12:06.667888",
"modified": "2024-12-04 23:30:37.622353",
"modified_by": "Administrator",
"module": "Email",
"name": "Email Account",

View file

@ -101,9 +101,8 @@ class EmailAccount(Document):
password: DF.Password | None
send_notification_to: DF.SmallText | None
send_unsubscribe_message: DF.Check
service: DF.Literal[
"", "Frappe Mail", "GMail", "Sendgrid", "SparkPost", "Yahoo Mail", "Outlook.com", "Yandex.Mail"
]
sent_folder_name: DF.Data | None
service: DF.Literal["", "Frappe Mail", "GMail", "Sendgrid", "SparkPost", "Yahoo Mail", "Outlook.com", "Yandex.Mail"]
signature: DF.TextEditor | None
smtp_port: DF.Data | None
smtp_server: DF.Data | None
@ -774,7 +773,8 @@ class EmailAccount(Document):
try:
email_server = self.get_incoming_server(in_receive=True)
message = safe_encode(message)
email_server.imap.append("Sent", "\\Seen", imaplib.Time2Internaldate(time.time()), message)
sent_folder_name = "Sent" if self.sent_folder_name == "" else self.sent_folder_name
email_server.imap.append(sent_folder_name, "\\Seen", imaplib.Time2Internaldate(time.time()), message)
except Exception:
self.log_error("Unable to add to Sent folder")

View file

@ -24,7 +24,8 @@
"validate_ssl_certificate_for_outgoing",
"column_break_18",
"smtp_port",
"append_emails_to_sent_folder"
"append_emails_to_sent_folder",
"sent_folder_name"
],
"fields": [
{
@ -141,6 +142,14 @@
"fieldname": "validate_ssl_certificate_for_outgoing",
"fieldtype": "Check",
"label": "Validate SSL Certificate"
},
{
"default": "Sent",
"depends_on": "eval: doc.append_emails_to_sent_folder",
"description": "Some mailboxes require a different Sent Folder Name e.g. \"INBOX.Sent\"",
"fieldname": "sent_folder_name",
"fieldtype": "Data",
"label": "Sent Folder Name"
}
],
"icon": "icon-inbox",
@ -150,7 +159,7 @@
"link_fieldname": "domain"
}
],
"modified": "2024-03-23 16:03:23.836849",
"modified": "2024-12-04 23:26:20.993971",
"modified_by": "Administrator",
"module": "Email",
"name": "Email Domain",

View file

@ -66,6 +66,7 @@ class EmailDomain(Document):
domain_name: DF.Data
email_server: DF.Data
incoming_port: DF.Data | None
sent_folder_name: DF.Data | None
smtp_port: DF.Data | None
smtp_server: DF.Data
use_imap: DF.Check