From 5f5cedb3d1dddcb000a2989797fca423a822e836 Mon Sep 17 00:00:00 2001 From: Frank Mullenger Date: Fri, 2 Oct 2015 11:34:50 +1300 Subject: [PATCH] MINOR: New email object for each recipient Creating a new email object for each recipient so that no state from the previous email object is carried through. Fixes silverstripe/silverstripe-userforms#356. --- code/model/UserDefinedForm.php | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/code/model/UserDefinedForm.php b/code/model/UserDefinedForm.php index f92e734..fe38e7f 100755 --- a/code/model/UserDefinedForm.php +++ b/code/model/UserDefinedForm.php @@ -662,22 +662,23 @@ JS // email users on submit. if($recipients = $this->FilteredEmailRecipients($data, $form)) { - $email = new UserFormRecipientEmail($submittedFields); - $mergeFields = $this->getMergeFieldsMap($emailData['Fields']); - - if($attachments) { - foreach($attachments as $file) { - if($file->ID != 0) { - $email->attachFile( - $file->Filename, - $file->Filename, - HTTP::get_mime_type($file->Filename) - ); - } - } - } foreach($recipients as $recipient) { + $email = new UserFormRecipientEmail($submittedFields); + $mergeFields = $this->getMergeFieldsMap($emailData['Fields']); + + if($attachments) { + foreach($attachments as $file) { + if($file->ID != 0) { + $email->attachFile( + $file->Filename, + $file->Filename, + HTTP::get_mime_type($file->Filename) + ); + } + } + } + $parsedBody = SSViewer::execute_string($recipient->getEmailBodyContent(), $mergeFields); if (!$recipient->SendPlain && $recipient->emailTemplateExists()) {