diff --git a/app/Helpers/Mail/GmailTransport.php b/app/Helpers/Mail/GmailTransport.php index 4117e710fdbe..6e36804720b4 100644 --- a/app/Helpers/Mail/GmailTransport.php +++ b/app/Helpers/Mail/GmailTransport.php @@ -31,7 +31,7 @@ class GmailTransport extends AbstractTransport protected function doSend(SentMessage $message): void { - nlog("in Do Send"); + nlog("In Do Send"); $message = MessageConverter::toEmail($message->getOriginalMessage()); $token = $message->getHeaders()->get('gmailtoken')->getValue(); @@ -45,7 +45,25 @@ class GmailTransport extends AbstractTransport $service = new Gmail($client); $body = new Message(); - $body->setRaw($this->base64_encode($message->toString())); + + $bccs = $message->getHeaders()->get('Bcc'); + + $bcc_list = ''; + + if($bccs) + { + $bcc_list = 'Bcc: '; + + foreach($bccs->getAddresses() as $address){ + + $bcc_list .= $address->getAddress() .','; + + } + + $bcc_list = rtrim($bcc_list, ",") . "\r\n"; + } + + $body->setRaw($this->base64_encode($bcc_list.$message->toString())); $service->users_messages->send('me', $body, []); diff --git a/app/Helpers/Mail/Office365MailTransport.php b/app/Helpers/Mail/Office365MailTransport.php index a4fa9d5e790f..e396e8f42531 100644 --- a/app/Helpers/Mail/Office365MailTransport.php +++ b/app/Helpers/Mail/Office365MailTransport.php @@ -16,7 +16,6 @@ use Microsoft\Graph\Graph; use Microsoft\Graph\Model\UploadSession; use Symfony\Component\Mailer\SentMessage; use Symfony\Component\Mailer\Transport\AbstractTransport; -use Symfony\Component\Mime\Email; use Symfony\Component\Mime\MessageConverter; class Office365MailTransport extends AbstractTransport @@ -38,20 +37,35 @@ class Office365MailTransport extends AbstractTransport $graph->setAccessToken($token); - try { - $graphMessage = $graph->createRequest('POST', '/users/'.$symfony_message->getFrom()[0]->getAddress().'/sendmail') - ->attachBody(base64_encode($message->toString())) - ->addHeaders(['Content-Type' => 'text/plain']) - ->setReturnType(\Microsoft\Graph\Model\Message::class) - ->execute(); - } catch (\Exception $e) { - sleep(5); - $graphMessage = $graph->createRequest('POST', '/users/'.$symfony_message->getFrom()[0]->getAddress().'/sendmail') - ->attachBody(base64_encode($message->toString())) - ->addHeaders(['Content-Type' => 'text/plain']) - ->setReturnType(\Microsoft\Graph\Model\Message::class) - ->execute(); + $bccs = $symfony_message->getHeaders()->get('Bcc'); + + $bcc_list = ''; + + if($bccs) + { + + foreach($bccs->getAddresses() as $address){ + + $bcc_list .= 'Bcc: "'.$address->getAddress().'" <'.$address->getAddress().'>\r\n'; + } + + } + + try { + $graphMessage = $graph->createRequest('POST', '/users/'.$symfony_message->getFrom()[0]->getAddress().'/sendmail') + ->attachBody(base64_encode($bcc_list.$message->toString())) + ->addHeaders(['Content-Type' => 'text/plain']) + ->setReturnType(\Microsoft\Graph\Model\Message::class) + ->execute(); + } catch (\Exception $e) { + sleep(5); + $graphMessage = $graph->createRequest('POST', '/users/'.$symfony_message->getFrom()[0]->getAddress().'/sendmail') + ->attachBody(base64_encode($bcc_list.$message->toString())) + ->addHeaders(['Content-Type' => 'text/plain']) + ->setReturnType(\Microsoft\Graph\Model\Message::class) + ->execute(); + } }