diff --git a/composer.json b/composer.json index 549cc6e..1882d1e 100644 --- a/composer.json +++ b/composer.json @@ -1,36 +1,38 @@ { - "name": "g4/mailer", - "description": "mailer php library with multiple mail providers (smtp, amazon_ses)", - "keywords": [ - "mailer", - "mail" - ], - "license": "MIT", - "authors": [ - { - "name": "Drasko Gomboc", - "email": "drasko.gomboc@gmail.com" + "name": "g4/mailer", + "description": "mailer php library with multiple mail providers (smtp, amazon_ses)", + "keywords": [ + "mailer", + "mail" + ], + "license": "MIT", + "authors": [ + { + "name": "Drasko Gomboc", + "email": "drasko.gomboc@gmail.com" + }, + { + "name": "Dejan Samardzija", + "email": "samardzijadejan@gmail.com" + }, + { + "name": "Ivan Krickovic", + "email": "ivan.krickovic@gmail.com" + } + ], + "autoload": { + "psr-4": { + "G4\\Mailer\\": "src/" + } }, - { - "name": "Dejan Samardzija", - "email": "samardzijadejan@gmail.com" + "require-dev": { + "phpunit/phpunit": "3.7.*" }, - { - "name": "Ivan Krickovic", - "email": "ivan.krickovic@gmail.com" + "require": { + "php": "^7.3", + "ext-json": "*", + "ext-curl": "*", + "laminas/laminas-mail": "2.10.*", + "laminas/laminas-servicemanager": "2.7.*" } - ], - "autoload": { - "psr-4": {"G4\\Mailer\\": "src/"} - }, - "require-dev": { - "phpunit/phpunit": "3.7.*" - }, - "require": { - "php": "^7.3", - "ext-json": "*", - "ext-curl": "*", - "zendframework/zend-mail": "2.10.*", - "zendframework/zend-servicemanager": "2.7.*" - } -} \ No newline at end of file +} diff --git a/src/Message.php b/src/Message.php index 3f5f1fb..13cee5e 100644 --- a/src/Message.php +++ b/src/Message.php @@ -2,7 +2,6 @@ namespace G4\Mailer; - class Message { /** @@ -19,7 +18,7 @@ class Message * @var array */ private $bcc; - + /** * @var array */ @@ -72,7 +71,7 @@ public function getBcc() { return $this->bcc; } - + /** * @return array */ @@ -80,7 +79,7 @@ public function getHeaders() { return $this->headers; } - + /** * @return bool */ @@ -159,7 +158,7 @@ public function addBcc($recipient) $this->bcc[] = $recipient; return $this; } - + /** * @param $header * @return $this @@ -169,7 +168,7 @@ public function addHeader($header) $this->headers[] = $header; return $this; } - + /** * @param array $headers * @return $this @@ -237,4 +236,4 @@ public function getListUnsubscribe() }, $this->unsubscribeOptions); return implode(', ', $links); } -} \ No newline at end of file +} diff --git a/src/Message/ZendMessageFacade.php b/src/Message/LaminasMessageFacade.php similarity index 67% rename from src/Message/ZendMessageFacade.php rename to src/Message/LaminasMessageFacade.php index a28c9b4..e4cd408 100644 --- a/src/Message/ZendMessageFacade.php +++ b/src/Message/LaminasMessageFacade.php @@ -2,34 +2,29 @@ namespace G4\Mailer\Message; - -class ZendMessageFacade +class LaminasMessageFacade { const ENCODING = 'utf-8'; const TYPE_HTML = 'text/html'; const TYPE_TEXT = 'text/plain'; - /** - * @param \G4\Mailer\Message $message - * @return \Zend\Mail\Message - */ - public static function convert(\G4\Mailer\Message $message) + public static function convert(\G4\Mailer\Message $message): \Laminas\Mail\Message { - $htmlPart = new \Zend\Mime\Part($message->getHtmlBody()); + $htmlPart = new \Laminas\Mime\Part($message->getHtmlBody()); $htmlPart->charset = self::ENCODING; $htmlPart->type = self::TYPE_HTML; - $htmlPart->encoding = \Zend\Mime\Mime::ENCODING_QUOTEDPRINTABLE; + $htmlPart->encoding = \Laminas\Mime\Mime::ENCODING_QUOTEDPRINTABLE; - $textPart = new \Zend\Mime\Part($message->getTextBody()); + $textPart = new \Laminas\Mime\Part($message->getTextBody()); $textPart->charset = self::ENCODING; $textPart->type = self::TYPE_TEXT; - $textPart->encoding = \Zend\Mime\Mime::ENCODING_QUOTEDPRINTABLE; + $textPart->encoding = \Laminas\Mime\Mime::ENCODING_QUOTEDPRINTABLE; - $body = new \Zend\Mime\Message(); + $body = new \Laminas\Mime\Message(); $body->setParts([$textPart, $htmlPart]); - $zendMessage = new \Zend\Mail\Message(); - $zendMessage + $laminasMessage = new \Laminas\Mail\Message(); + $laminasMessage ->addTo($message->getTo()) ->addFrom( self::getEmailPart($message->getFrom()), @@ -45,22 +40,22 @@ public static function convert(\G4\Mailer\Message $message) ->getHeaders()->get('content-type')->setType('multipart/alternative'); if (count($message->getCc())) { - $zendMessage->addCc($message->getCc()); + $laminasMessage->addCc($message->getCc()); } if (count($message->getBcc())) { - $zendMessage->addBcc($message->getBcc()); + $laminasMessage->addBcc($message->getBcc()); } if ($message->getReplyTo()) { - $zendMessage->setReplyTo( + $laminasMessage->setReplyTo( self::getEmailPart($message->getReplyTo()), self::getNamePart($message->getReplyTo()) ); } if ($message->hasHeaders()) { - $zendMessage->getHeaders()->addHeaders($message->getHeaders()); + $laminasMessage->getHeaders()->addHeaders($message->getHeaders()); } - return $zendMessage; + return $laminasMessage; } private static function getEmailPart($from) @@ -80,4 +75,4 @@ private static function getNamePart($from) } return null; } -} \ No newline at end of file +} diff --git a/src/Transport/Smtp/Smtp.php b/src/Transport/Smtp/Smtp.php index 3615c1c..91cd812 100644 --- a/src/Transport/Smtp/Smtp.php +++ b/src/Transport/Smtp/Smtp.php @@ -3,8 +3,10 @@ namespace G4\Mailer\Transport\Smtp; use G4\Mailer\Exception\SmtpEmailNotSentException; -use G4\Mailer\Message\ZendMessageFacade; +use G4\Mailer\Message; +use G4\Mailer\Message\LaminasMessageFacade; use G4\Mailer\Transport\TransportInterface; +use Laminas\Mail\Transport\SmtpOptions; class Smtp implements TransportInterface { @@ -15,16 +17,16 @@ public function __construct($options) $this->setOptions($options); } - public function send(\G4\Mailer\Message $message) + public function send(Message $message) { - $options = new \Zend\Mail\Transport\SmtpOptions($this->options); + $options = new SmtpOptions($this->options); // todo adapter will instantiate transport other than smtp - $transport = new \Zend\Mail\Transport\Smtp($options); + $transport = new \Laminas\Mail\Transport\Smtp($options); try { - $transport->send(ZendMessageFacade::convert($message)); - } catch (\Zend\Mail\Exception\RuntimeException $e) { + $transport->send(LaminasMessageFacade::convert($message)); + } catch (\Laminas\Mail\Exception\RuntimeException $e) { throw new SmtpEmailNotSentException($e->getMessage(), $e->getCode()); } } @@ -53,4 +55,4 @@ private function setOptions($options) $this->options = $options['params']; } -} \ No newline at end of file +}