[rt-devel] support for dynamic envelope sender addresses
Shawn M Moore
shawn at bestpractical.com
Thu Jul 28 16:03:59 EDT 2016
> On Jul 28, 2016, at 12:50, Sam Hanes <sam at maltera.com> wrote:
> Hi All,
> Is it likely that a patch to add a callback capable of setting the
> envelope sender in `RT::Interface::Email::SendEmail()` would be accepted
Yeah, we'd happily take such a patch. As you discovered, callbacks are Mason-specific, so can't be used for this. The way we make library code customizable is by factoring out a small, well-defined method, which a local overlay can then redefine.
A useful technique for this is to take a reference to the original sub reference before redefining it, and then calling it within the redefinition (which works a lot like a subclass dispatching to the superclass's method). For an example of prior art, see https://github.com/bestpractical/rt-extension-onetimeto/blob/a0da9368643/lib/RT/Extension/OneTimeTo.pm#L83-L97
> Should such a callback be passed a reference to the array of `sendmail`
> arguments so it can modify them as desired or should it be expected to
> return an envelope sender address?
A method that returns the list of sendmail arguments might be the best fit.
> Thanks for your consideration,
> Sam Hanes
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
More information about the rt-devel