Re: ERMailDeliveryHTML outside the RR-Loop
Re: ERMailDeliveryHTML outside the RR-Loop
- Subject: Re: ERMailDeliveryHTML outside the RR-Loop
- From: Timo Hoepfner <email@hidden>
- Date: Mon, 05 Oct 2015 10:13:02 +0200
Hi Christoph,
this is what I’ve been using in the past. Maybe a bit too complicated, but it works without leaking sessions.
public static void fillMailWithContentFromComponentInBackgroundThread(ERMailDeliveryHTML mail, String pageName, NSDictionary<String, Object> values) {
// When running in a regular R/R-loop this is not needed! Just use the current context.
// So, we're running outside of the R/R loop... We need a dummy context...
ERXRequest fakeRequest = new ERXRequest("GET", "", "HTTP/1.1", null, null, null);
ERXWOContext dummyContext = new ERXWOContext(fakeRequest);
// ...which will implicitly create a session, so prepare it to not log session termination in accounting
PDBUBasicSession dummySession = (PDBUBasicSession) dummyContext.session();
dummySession.setDontLogSessionTermination(true);
// not sure why this is needed
dummyContext.setMutableUserInfo(new NSMutableDictionary<String, Object>());
ERXWOContext.setCurrentContext(dummyContext);
// prepare the page...
WOComponent contentPage = WOApplication.application().pageWithName(pageName, dummyContext);
if (values != null) {
for (String keyPath : values.allKeys()) {
contentPage.takeValueForKeyPath(values.objectForKey(keyPath), keyPath);
}
}
// ...and add the content of the page to the message
mail.setCharset("UTF-8");
mail.setHTMLContent(contentPage.generateResponse().contentString());
mail.setHiddenPlainTextContent("Dies ist eine HTML E-Mail. Bitte schalten Sie die Ansicht um.");
// terminate the dummy session, otherwise we have a session leak
dummySession.terminate();
}
HTH,
Timo
> Am 04.10.2015 um 21:07 schrieb CHRISTOPH WICK | i4innovation GmbH, Bonn <email@hidden>:
>
> Hi List,
>
> I'd like to send batch emails in a separate thread using ERMailDeliveryHTML and a Component based HTML.
>
> Unfortunately, I need a WOContext to generate my subclass of WOComponent. Is there a way to generate the WOContext outside the RR-Loop?
>
> C.U.CW
> --
> What are the three enemies of a programmer? Sunlight, oxygen, and the appalling roar of the birds.
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden