[ https://issues.apache.org/jira/browse/JAMES-3431?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17247036#comment-17247036 ]
ASF GitHub Bot commented on JAMES-3431: --------------------------------------- chibenwa opened a new pull request #278: URL: https://github.com/apache/james-project/pull/278 I decided to write DSN support as a completely optional extension to the James SMTP server. Why? Because RFC-3461 compliance needs the mail processing to be correctly configured (and handle DSN bounces correctly). Which we cannot assume. Hence, for the sake of compliance, this should be optional. For the sake of the exercise, I decided to challenge leveraging SMTP hooks to implement new ESMTP extensions. Needless to say, I had bad surprises. I needed to modify "core" SMTP server code in order to: - Pass new supported ESMTP extensions to EHLO command - Cary over RCPT parameters to the RcptHooks. - Rcpt hooks needs to announce which RCPT parameters they can handle. Rcpt command should not reject those. Default methods where used in order NOT to introduce braking changes. To enable DSN in JAMES, add the following handler to smtpserver.xml : ``` <handler class="org.apache.james.smtpserver.dsn.DSNHeloHook"/> <handler class="org.apache.james.smtpserver.dsn.DSNMailParameterHook"/> <handler class="org.apache.james.smtpserver.dsn.DSNRcptParameterHook"/> <handler class="org.apache.james.smtpserver.dsn.DSNMessageHook"/> ``` Not only does this contribution enables opt-in DSN support, But also it makes it easier for contributors to write their own ESMTP extensions. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Relay DSN options on RemoteDelivery > ----------------------------------- > > Key: JAMES-3431 > URL: https://issues.apache.org/jira/browse/JAMES-3431 > Project: James Server > Issue Type: Bug > Components: Remote Delivery, SMTPServer > Affects Versions: 3.5.0 > Reporter: Karsten Otto > Priority: Major > > Since James claims to support the DSN SMTP extension, it may receive a mail > submission according to [RFC 3461|https://tools.ietf.org/html/rfc3461]: > {code:java} > MAIL FROM:<al...@example.org> RET=HDRS ENVID=QQ314159 > RCPT TO:<d...@ivory.edu> NOTIFY=SUCCESS,FAILURE,DELAY > ORCPT=rfc822;d...@ivory.edu > RCPT TO:<f...@bombs.af.mil> NOTIFY=NEVER{code} > In this case James should > * remember the given DSN options (NOTIFY, ORCPT, RET, ENVID) for each > recipient, and > * provide the same options when relaying the mail to remote servers via the > RemoteDelivery mailet. > (The DSN options should be accessible to other interested mailets as well, > e.g. for bounce processing.) > Possibly related issues: > https://issues.apache.org/jira/browse/JAMES-322 > https://issues.apache.org/jira/browse/JAMES-362 > -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org