/** * If no arguments are provided, the mail service is returned. * If any argument is provided, they will be used to configure the MailService and send an email. * The result object will be returned in that case * * @param null|string|ViewModel|array $bodyOrConfig * @param null|string $subject * @param null|array $to * @param null|string|array $from * @param null|array $cc * @param null|array $bcc * @param null|array $attachments * @return MailServiceInterface|ResultInterface */ public function __invoke($bodyOrConfig = null, $subject = null, $to = null, $from = null, $cc = null, $bcc = null, $attachments = null) { $args = func_get_args(); if (empty($args)) { return $this->mailService; } $args = $this->normalizeMailArgs($args); $this->applyArgsToMailService($args); return $this->mailService->send(); }