diff --git a/smtprd_ng/smtprd.py b/smtprd_ng/smtprd.py index 216bb92..08b68c4 100644 --- a/smtprd_ng/smtprd.py +++ b/smtprd_ng/smtprd.py @@ -316,13 +316,18 @@ class SMTPClient(SMTP): f"'{message.get('Subject', '')}'" ) if self._config.smime_cert and self._emails.email_certs[recipient] != "": - message = self._encrypt_and_sign(message, recipient) + m = self._encrypt_and_sign(message, recipient) + else: + m = message + m.add_header("From", self._config.sender) + m.add_header("To", recipient) + m = m.as_bytes() async with ( self._lock ): # TODO: consumer task from spool queue, reusing connections try: await self.connect() - await self._send_message(message, self._config.sender, recipient) + await self._send_message(m, self._config.sender, recipient) except SMTPRecipientsRefused as e: raise RuntimeError( f"Recipients refused: {', '.join(_.recipient for _ in e.recipients)}"