mailManager->findServiceByAddress($uid, $mailMergeMessage->getFrom()); if ($mailService === null || !$mailService->capable('MessageSend')) { throw new Exception("MailMerge error: $uid with {$mailMergeMessage->getFrom()} address cannot send messages"); } $fromAddress = new Address($mailMergeMessage->getFrom()); $toAddress = new Address($mailMergeMessage->getTo()); $message = $mailService->initiateMessage(); $message->setFrom($fromAddress) ->setTo($toAddress) ->setSubject($mailMergeMessage->getSubject()) ->setBodyHtml($mailMergeMessage->getBodyHtml()) ->setBodyPlain($mailMergeMessage->getBodyPlain()); if ($mailMergeMessage->hasAttachment()) { $attachment = new Attachment( $mailMergeMessage->getAttachment()->getContent(), $mailMergeMessage->getAttachment()->getName(), $mailMergeMessage->getAttachment()->getExtension() ); $message->setAttachments($attachment); } $mailService->sendMessage($message); } }