KumoCorp / kumomta

The first Open-Source high-performance MTA developed from the ground-up for high-volume email sending environments.
https://kumomta.com
Apache License 2.0
252 stars 33 forks source link

RFC9477 Header Support #97

Open MHillyer opened 1 year ago

MHillyer commented 1 year ago

Historically Validity has provided a centralized FBL broker service where senders can sign up at Validity and in return receive FBL data from a collection of Mailbox Providers.

Recently Validity has moved from that being a free service to instead providing it as a paid service. This means that many senders, as well as some Mailbox Providers, are looking to move to alternate decentralized mechanisms for providing FBL data.

One proposed solution is RFC9477 - https://datatracker.ietf.org/doc/html/rfc9477

This involves injecting a header that specifies the email address that FBLs should be sent to, so that the MBP can dynamically send FBLs without pre-registration required.

For most cases it's just a matter of adding the header, unless the destination domain is not the same as the sending domain, in which case a DKIM signature on the FBL destination domain must also be added to the message.

Should be straightforward to implement.

wez commented 1 year ago

Pretty sure that this is just:

kumo.on('smtp_server_message_received', function(msg)
  msg:prepend_header('CFBL-Address', 'fbl@example.com; report=arf')
end)

what more do we need to do here?

MHillyer commented 1 year ago

Mainly logic around whether the FBL domain needs a signature because it’s not part of the message’s from/return path domains.