I'm using MVCMailer which depends on an HttpContext to send out mail.
In some cases I'm sending mail from a WebJob, or in an async task that is used in a flow that calls ConfigureAwait(false)
so I lose the context before I hit the MVCMailer code.
My options seem to be:
- Never use
ConfigureAwait(false)
(so many of my services use Mailing at some point, so one instance of this will remove the context I need) - New up an HttpContext if needed so that I can mail despite not having one
- Not use MvcMailer and use a third party
I'm looking for the fast and easy solution - newing up an HttpContext if needed. Is this possible?
This is the code I'm using now that depends on the HttpContext:
public class UserMailer : MailerBase {
public UserMailer() {
MasterName = "_Layout";
}
public virtual MvcMailMessage Message(MailMessage message, string unsubscribeLink = null) {
ViewBag.Body = message.Body;
ViewBag.Subject = message.Subject;
ViewBag.UnsubscribeLink = unsubscribeLink;
return Populate(x => {
x.ViewName = "Message";
});
}
}