Afzender met alleen een naam ('Machiel Heinen') wordt 'Naam <inlognaam>' (mail.sender): zonder adres weigerde de ontvangende server het bericht; zelfde afzender in de verstuurde mail in de CRM
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
366a3f9d17
commit
8f6e1ab443
@@ -12,6 +12,7 @@ import smtplib
|
||||
import ssl
|
||||
import time
|
||||
from datetime import datetime, timedelta
|
||||
from email.headerregistry import Address
|
||||
from email.message import EmailMessage
|
||||
from email.policy import default as policy
|
||||
from email.utils import formatdate, make_msgid, parseaddr, parsedate_to_datetime
|
||||
@@ -173,19 +174,28 @@ def fetch(cfg, known, limit=200):
|
||||
pass
|
||||
|
||||
|
||||
def sender(cfg):
|
||||
"""Afzender voor From: smtp_from, of de inlognaam. Alleen een naam in smtp_from ('Machiel Heinen') wordt
|
||||
'Machiel Heinen <inlognaam>': zonder adres weigert de ontvangende server het bericht."""
|
||||
user = cfg.get('smtp_user') or cfg.get('imap_user', '')
|
||||
raw = (cfg.get('smtp_from') or '').strip()
|
||||
name, addr = parseaddr(raw)
|
||||
if '@' not in addr:
|
||||
name, addr = raw, user
|
||||
return str(Address(display_name=name, addr_spec=addr)) if name and addr else addr
|
||||
|
||||
|
||||
def send(cfg, to, subject, body, in_reply_to=None, cc='', attachments=()):
|
||||
"""Versturen; geeft (Message-ID, waarschuwing of None). Een mislukte kopie in Verzonden is alleen een waarschuwing.
|
||||
attachments = [(bestandsnaam, bytes, mimetype)]."""
|
||||
user = cfg.get('smtp_user') or cfg.get('imap_user', '')
|
||||
sender = cfg.get('smtp_from') or user
|
||||
msg = EmailMessage()
|
||||
msg['From'] = sender
|
||||
msg['From'] = sender(cfg)
|
||||
msg['To'] = to
|
||||
if cc:
|
||||
msg['Cc'] = cc
|
||||
msg['Subject'] = subject
|
||||
msg['Date'] = formatdate(localtime=True)
|
||||
domain = parseaddr(sender)[1].rpartition('@')[2] or None
|
||||
domain = parseaddr(msg['From'])[1].rpartition('@')[2] or None
|
||||
msg['Message-ID'] = make_msgid(domain=domain)
|
||||
if in_reply_to:
|
||||
msg['In-Reply-To'] = in_reply_to
|
||||
|
||||
Reference in New Issue
Block a user