You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-user@james.apache.org by Jerry Malcolm <te...@malcolms.com> on 2019/09/13 03:49:19 UTC
Intercepting delivery success/fail
Another mod I had made to v3b5 was to intercept the final result of
success/fail of delivery. I have a requirement to externally log the
"mail was successfully transferred to <gmail/yahoo/etc smtp server>"
message and also after all of the retries are exhausted, the final
'fail' message.
Back in v3b5 I cloned the RemoteDelivery mailet and located the
appropriate locations where the successful handoff was logged and where
the final fail was logged. It looks like that RemoteDelivery mailet was
totally rewritten somewhere between b5 and 3.3. Mail is put on a queue
in remoteDelivery, and all the work is now handled elsewhere.
My question is simply this: What is the easiest/best/correct way to hook
in so that I can add my logging code on the successful handoff and also
on the final retry fail? If I can do this without requiring a full
rebuild, that's desired considering my disaster at build attempts. But
if the only way to add this required functionality is to modify core
code, sooner or later I'll have to figure out my build problems. Either
way, I need to know what you recommend for hooking these two points.
Thx
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org
Re: Intercepting delivery success/fail
Posted by Tellier Benoit <bt...@apache.org>.
Hello Jerry,
About success, a log is already written in MailDelivrerToHost:
Mail (xyz) sent successfully to a@other.tld at other.tld from us.tld
for me@us.tld
More generally, the extension model of James is well design, and from
what you expose there is zero requirement to alter the RemoteDelivery
component. Think "composition" over "inheritance".
So:
- Write a mailet about your failure logging
- Configure remoteDelivery bounce processor
- Put your mailet in that processor
Regarding success, we lack currently extension endpoints. What we may be
able to do is call a `remoteDelivery:successProcessor` to be able to
extend behaviour upon delivery.
This will for example enable per-recipient delivery notifications & the
like. This might be an implementation step for JMAP::Email_submission.
Cheers,
Benoit
On 13/09/2019 10:49, Jerry Malcolm wrote:
> Another mod I had made to v3b5 was to intercept the final result of
> success/fail of delivery. I have a requirement to externally log the
> "mail was successfully transferred to <gmail/yahoo/etc smtp server>"
> message and also after all of the retries are exhausted, the final
> 'fail' message.
>
> Back in v3b5 I cloned the RemoteDelivery mailet and located the
> appropriate locations where the successful handoff was logged and where
> the final fail was logged. It looks like that RemoteDelivery mailet was
> totally rewritten somewhere between b5 and 3.3. Mail is put on a queue
> in remoteDelivery, and all the work is now handled elsewhere.
>
> My question is simply this: What is the easiest/best/correct way to hook
> in so that I can add my logging code on the successful handoff and also
> on the final retry fail? If I can do this without requiring a full
> rebuild, that's desired considering my disaster at build attempts. But
> if the only way to add this required functionality is to modify core
> code, sooner or later I'll have to figure out my build problems. Either
> way, I need to know what you recommend for hooking these two points.
>
> Thx
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
> For additional commands, e-mail: server-user-help@james.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: server-user-unsubscribe@james.apache.org
For additional commands, e-mail: server-user-help@james.apache.org