Skip to content

Commit

Permalink
Merge pull request #20 from mirko-bukilic/master
Browse files Browse the repository at this point in the history
Replace zend with laminas packages
  • Loading branch information
ppavlovic committed Oct 26, 2023
2 parents 8c5d400 + 6feef20 commit 866eb8a
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 66 deletions.
66 changes: 34 additions & 32 deletions composer.json
Original file line number Diff line number Diff line change
@@ -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.*"
}
}
}
13 changes: 6 additions & 7 deletions src/Message.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

namespace G4\Mailer;


class Message
{
/**
Expand All @@ -19,7 +18,7 @@ class Message
* @var array
*/
private $bcc;

/**
* @var array
*/
Expand Down Expand Up @@ -72,15 +71,15 @@ public function getBcc()
{
return $this->bcc;
}

/**
* @return array
*/
public function getHeaders()
{
return $this->headers;
}

/**
* @return bool
*/
Expand Down Expand Up @@ -159,7 +158,7 @@ public function addBcc($recipient)
$this->bcc[] = $recipient;
return $this;
}

/**
* @param $header
* @return $this
Expand All @@ -169,7 +168,7 @@ public function addHeader($header)
$this->headers[] = $header;
return $this;
}

/**
* @param array $headers
* @return $this
Expand Down Expand Up @@ -237,4 +236,4 @@ public function getListUnsubscribe()
}, $this->unsubscribeOptions);
return implode(', ', $links);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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()),
Expand All @@ -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)
Expand All @@ -80,4 +75,4 @@ private static function getNamePart($from)
}
return null;
}
}
}
16 changes: 9 additions & 7 deletions src/Transport/Smtp/Smtp.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand All @@ -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());
}
}
Expand Down Expand Up @@ -53,4 +55,4 @@ private function setOptions($options)
$this->options = $options['params'];
}

}
}

0 comments on commit 866eb8a

Please sign in to comment.