Skip to content

Conversation

@vodolaz095
Copy link

@vodolaz095 vodolaz095 commented Jun 16, 2023

New features:

  1. function Envelope#AddHeader (+ unit test)
  2. Proxy command emits protocol level events to log (+ unit tests)
  3. Peer has metadata (map[string]interface{}) and functions to manipulate it
  4. Code works on 1.19 golang compiler

Breaking changes:
in checker functions Peer is now link to struct, not struct like it was before

Why do i need peer metadata?
i can process message differently, for example, if RCPT TO points to existing record in LDAP database, i deliver message to dovecot via lmtp, if address for RCPT TP is in some list, i can either send message to quarantine, report to rspamd as spam or even parse message and create new task in redmine via api call.

we had similar complicated email server on Haraka before, but since it is nodejs and i encountered few bugs with it (like constant memleaks and some issues with prototype pollutions), i decided to find some minimalistic and easy to hack email server in golang, and your's one was probably the best.

@vodolaz095
Copy link
Author

Seems like my PR was not reviewed for all this time, so i decided to make my own version of golang SMTP server with plugins and, of course, karma scoring.

https://github.com/vodolaz095/msmtpd

I used some code from this repo, but since this repo is marked as public domain, and my repo is MIT licensed, i think it is ok

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant