all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Shannon Sterz <s.sterz@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [pbs-devel] [PATCH proxmox 0/4] improve mail compatability
Date: Wed,  8 Oct 2025 10:49:06 +0200	[thread overview]
Message-ID: <20251008084906.62427-1-s.sterz@proxmox.com> (raw)

this series tries to improve compatability with more mail servers. this
is done in three ways:

- patch 1: base64 encode filenames of attachments
- patch 2: check whether the html or text bodies of an email are ascii
  only. if they are, we can safely declare 7bit encoding which should be
  more broadly compatability than the previous 8bit encoding. if the
  text is not ascii only, encode it as base64 and declare base64
  encoding.
- patch 3: splits the Content-Disposition header of attached files over
  two lines, to avoid longer files possibly triggering a line length
  limit.
- patch 4: allows setting the masked recipient so that users of this
  crate can specify somethings more appropriate for their use case.

this should specifically make it possible to support mail servers that
don't support SMTPUTF8, as now no part of the header or body should
contain plain utf8 characters directly.

i tested these patches against the following mail clients:

- bluemind
- Thunderbird
- aerc
- canary [1]
- iOS Mail app
- gmail.com
- outlook.com

all of them seemed to receive the email and display it properly (note
that aerc prefers the TXT part of the mime alternative parts even if the
html part should be preferred, due to being a terminal based mua).

[1]: https://canarymail.io/

Changelog
---------

changes since v1:

- rebased on current master
- added a patch that allows setting the noreply recipient for mails send
  in undisclosed recipient mode

Note: the need for this series was identified internally as some mails
send with out internal tools would to be received properly.

Shannon Sterz (4):
  sendmail: encode non-ascii filenames to improve compatability
  sendmail: encode non-ascii bodies as base64 to improve comptability
  sendmail: break content disposition headers for attachments
  sendmail: allow specifying the masked receiver

 proxmox-sendmail/src/lib.rs | 258 ++++++++++++++++++++++++++++--------
 1 file changed, 206 insertions(+), 52 deletions(-)

--
2.47.3



_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel


             reply	other threads:[~2025-10-08  8:49 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-08  8:49 Shannon Sterz [this message]
2025-10-08  8:50 ` [pbs-devel] [PATCH proxmox 1/4] sendmail: encode non-ascii filenames to improve compatability Shannon Sterz
2025-10-08  8:50   ` [pbs-devel] [PATCH proxmox 2/4] sendmail: encode non-ascii bodies as base64 to improve comptability Shannon Sterz
2025-10-08  8:50   ` [pbs-devel] [PATCH proxmox 3/4] sendmail: break content disposition headers for attachments Shannon Sterz
2025-10-08  8:50   ` [pbs-devel] [PATCH proxmox 4/4] sendmail: allow specifying the masked receiver Shannon Sterz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251008084906.62427-1-s.sterz@proxmox.com \
    --to=s.sterz@proxmox.com \
    --cc=pbs-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal