From d7d2b86a9f4841e6c66675a8646a37305ae2b22c Mon Sep 17 00:00:00 2001 From: Zichao Lin Date: Wed, 24 Jul 2024 14:02:54 +0800 Subject: [PATCH] fix: `From` for @yandex.com --- main.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/main.py b/main.py index 1747e5e..a048581 100644 --- a/main.py +++ b/main.py @@ -14,6 +14,12 @@ import re from email.header import decode_header +def provider_in(address, provider_list): + for provider in provider_list: + if address.endswith(provider): + return True + return False + def decode_mime_words(s): decoded_fragments = decode_header(s) return ''.join( @@ -66,7 +72,7 @@ def get_unforwarded_emails(account_config, logger): imap.login(account_config['email'], account_config['password']) - if "163.com" in account_config['email'] or "126.com" in account_config['email']: + if provider_in(account_config['email'], ["163.com", "126.com"]): imaplib.Commands['ID'] = ('AUTH') args = ("name","XXXX","contact","XXXX@163.com","version","1.0.0","vendor","myclient") typ, dat = imap._simple_command('ID', '("' + '" "'.join(args) + '")') @@ -109,7 +115,10 @@ def forward_emails(account_config, emails, logger): to_name, to_address = parseaddr(original_msg['To']) to_name = decode_mime_words(to_name) msg = MIMEMultipart('mixed') - msg['From'] = f"{from_name} ({from_address}) via Forwarder <{account_config['email']}>" + if provider_in(account_config['email'], ["yandex.com"]): + msg['From'] = f"{from_name} via Forwarder <{account_config['email']}>" + else: + msg['From'] = f"{from_name} ({from_address}) via Forwarder <{account_config['email']}>" msg['To'] = f"{to_name} ({to_address}) via Forwarder <{recipient}>" original_subject = decode_mime_words(original_msg['Subject']) msg['Subject'] = original_subject