diff --git a/imap_filter/imap_filter.py b/imap_filter/imap_filter.py index 78cfdf2..4382943 100644 --- a/imap_filter/imap_filter.py +++ b/imap_filter/imap_filter.py @@ -151,11 +151,13 @@ class ImapFilter: condition = f'allof (header :contains "{field}" ["{'", "'.join(mfilter['words'])}"])' search = f"^.* # imap_filter: rule name 'imap_filter_INBOX_{mfilter['name']}'" replacement = f'if {condition} {{ fileinto "{mfilter['destination']}"; stop;}} # imap_filter: rule name \'imap_filter_INBOX_{mfilter['name']}\'' - new_content = re.sub(search, replacement, content) - if content == new_content: - content += f"{replacement}\n" + match = re.search(search, content) + if match: + new_content = re.sub(search, replacement, content) + if content != new_content: + content = f"{new_content}\n" else: - content = f"{new_content}\n" + content += f"{replacement}\n" with open(self.config['sieve_scripts_path'], 'w', encoding='UTF-8') as sieve_script: sieve_script.write(content) return True