Skip to content

Commit 15fd9ab

Browse files
committed
refactoring
1 parent 529230f commit 15fd9ab

13 files changed

+300
-366
lines changed

README.md

+12-14
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,9 @@ $transport = new Ddrv\Mailer\Transport\SendmailTransport(
4141
$transport = new Ddrv\Mailer\Transport\SmtpTransport(
4242
'smtp.fight.club', // host (REQUIRED)
4343
25, // port (REQUIRED)
44-
'joe', // login (REQUIRED)
45-
'IAmJoesLiver', // password (REQUIRED)
44+
'info', // login (REQUIRED)
45+
'super-secret', // password (REQUIRED)
4646
'joe@fight.club', // sender email (REQUIRED)
47-
'Fight Club', // sender name
4847
null, // encryption: 'tls', 'ssl' or null
4948
'http://fight.club' // domain
5049
);
@@ -114,28 +113,27 @@ $html .= '<img src="cid:poster" alt="Poster"/><img src="cid:ticket" alt="Your ti
114113
$message->setHtml($html);
115114
116115
$message->setSender('support@fight.club', 'Support od Fight Club'); // The SMTP transport will set its value.
117-
$message->removeSender(); // If you decide to cancel. The SMTP transport will set its value.
118116
119-
$message->addRecipient('tyler@fight.club', 'Tyler Durden', Ddrv\Mailer\Contract\Message::RECIPIENT_TO);
120-
$message->addRecipient('bob@fight.club', 'Robert Paulson', Ddrv\Mailer\Contract\Message::RECIPIENT_CC);
121-
$message->addRecipient('angel@fight.club', 'Angel Face', Ddrv\Mailer\Contract\Message::RECIPIENT_BCC);
122-
$message->addRecipient('r.chesler@car-vendor.com', 'Richard Chesler', Ddrv\Mailer\Contract\Message::RECIPIENT_TO);
117+
$message->addRecipient('tyler@fight.club', 'Tyler Durden', Ddrv\Mailer\Message::RECIPIENT_TO);
118+
$message->addRecipient('bob@fight.club', 'Robert Paulson', Ddrv\Mailer\Message::RECIPIENT_CC);
119+
$message->addRecipient('angel@fight.club', 'Angel Face', Ddrv\Mailer\Message::RECIPIENT_BCC);
120+
$message->addRecipient('r.chesler@car-vendor.com', 'Richard Chesler', Ddrv\Mailer\Message::RECIPIENT_TO);
123121
124122
$message->getRecipientName('bob@fight.club'); // Returns 'Robert Paulson'.
125123
$message->getRecipientName('unknown@fight.club'); // Returns null.
126124
127125
$message->removeRecipient('r.chesler@car-vendor.com'); // If you change your mind.
128126
129127
// You may remove recipients by type
130-
$message->removeRecipients(Ddrv\Mailer\Contract\Message::RECIPIENT_TO);
131-
$message->removeRecipients(Ddrv\Mailer\Contract\Message::RECIPIENT_CC);
132-
$message->removeRecipients(Ddrv\Mailer\Contract\Message::RECIPIENT_BCC);
128+
$message->removeRecipients(Ddrv\Mailer\Message::RECIPIENT_TO);
129+
$message->removeRecipients(Ddrv\Mailer\Message::RECIPIENT_CC);
130+
$message->removeRecipients(Ddrv\Mailer\Message::RECIPIENT_BCC);
133131
// Or all
134132
$message->removeRecipients();
135133
136-
$message->addRecipient('tyler@fight.club', 'Tyler Durden', Ddrv\Mailer\Contract\Message::RECIPIENT_TO);
137-
$message->addRecipient('bob@fight.club', 'Robert Paulson', Ddrv\Mailer\Contract\Message::RECIPIENT_CC);
138-
$message->addRecipient('angel@fight.club', 'Angel Face', Ddrv\Mailer\Contract\Message::RECIPIENT_BCC);
134+
$message->addRecipient('tyler@fight.club', 'Tyler Durden', Ddrv\Mailer\Message::RECIPIENT_TO);
135+
$message->addRecipient('bob@fight.club', 'Robert Paulson', Ddrv\Mailer\Message::RECIPIENT_CC);
136+
$message->addRecipient('angel@fight.club', 'Angel Face', Ddrv\Mailer\Message::RECIPIENT_BCC);
139137
140138
141139

composer.json

+1-4
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,7 @@
2525
"autoload": {
2626
"psr-4": {
2727
"Ddrv\\Mailer\\": "src/"
28-
},
29-
"files": [
30-
"fn.php"
31-
]
28+
}
3229
},
3330
"autoload-dev": {
3431
"psr-4": {

fn.php

-192
This file was deleted.

src/Contract/Message.php

+5-30
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,11 @@
22

33
namespace Ddrv\Mailer\Contract;
44

5-
use Ddrv\Mailer\Exception\InvalidEmailException;
65
use Serializable;
76

87
interface Message extends Serializable
98
{
109

11-
const RECIPIENT_TO = 'to';
12-
const RECIPIENT_CC = 'cc';
13-
const RECIPIENT_BCC = 'bcc';
14-
15-
/**
16-
* @param string $email Recipient email.
17-
* @param string|null $name Recipient name.
18-
* @param string $type Recipient type. May be 'to', 'cc' or 'bcc'. Default 'to'.
19-
* @return self
20-
* @throws InvalidEmailException
21-
*/
22-
public function addRecipient($email, $name = null, $type = self::RECIPIENT_TO);
23-
24-
/**
25-
* @param string $email Recipient email.
26-
* @return string|null Recipient name or null.
27-
*/
28-
public function getRecipientName($email);
29-
30-
/**
31-
* @param string $type Recipient type. May be 'to', 'cc', 'bcc' or null. Default null.
32-
* @return self
33-
*/
34-
public function removeRecipients($type = null);
3510

3611
/**
3712
* @param string $email Sender email.
@@ -45,11 +20,6 @@ public function setSender($email, $name = null);
4520
*/
4621
public function getRecipients();
4722

48-
/**
49-
* @return string|null Mail subject.
50-
*/
51-
public function getSubject();
52-
5323
/**
5424
* @return string Rew string as email headers
5525
*/
@@ -59,4 +29,9 @@ public function getHeadersRaw();
5929
* @return string Raw string of email body
6030
*/
6131
public function getBodyRaw();
32+
33+
/**
34+
* @return Message[]
35+
*/
36+
public function getPersonalMessages();
6237
}

src/Contract/Transport.php

-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace Ddrv\Mailer\Contract;
44

5-
use Ddrv\Mailer\Exception\RecipientsListEmptyException;
65
use Ddrv\Mailer\Exception\TransportException;
76

87
interface Transport
@@ -11,7 +10,6 @@ interface Transport
1110
/**
1211
* @param Message $message
1312
* @return bool
14-
* @throws RecipientsListEmptyException
1513
* @throws TransportException
1614
*/
1715
public function send(Message $message);

src/Mailer.php

+8-15
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
use Ddrv\Mailer\Contract\Transport;
77
use Ddrv\Mailer\Exception\RecipientsListEmptyException;
88
use Ddrv\Mailer\Exception\TransportException;
9-
use Exception;
109

1110
final class Mailer
1211
{
@@ -46,6 +45,7 @@ public function __construct(Transport $transport, $senderEmail = null, $senderNa
4645
* @param Message $message
4746
* @return bool
4847
* @throws RecipientsListEmptyException
48+
* @throws TransportException
4949
*/
5050
public function send(Message $message)
5151
{
@@ -67,7 +67,6 @@ public function personal(Message $message)
6767
* @param bool $personal
6868
* @return int
6969
* @throws RecipientsListEmptyException
70-
* @throws TransportException
7170
*/
7271
private function sendMail(Message $message, $personal = false)
7372
{
@@ -77,26 +76,20 @@ private function sendMail(Message $message, $personal = false)
7776
if ($this->senderEmail) {
7877
$message->setSender($this->senderEmail, $this->senderName);
7978
}
80-
$messages = array();
8179
if ($personal) {
82-
$recipients = $message->getRecipients();
83-
foreach ($recipients as $recipient) {
84-
$name = $message->getRecipientName($recipient);
85-
$new = clone $message;
86-
$messages[] = $new->removeRecipients()->addRecipient($recipient, $name);
87-
}
80+
$messages = $message->getPersonalMessages();
8881
} else {
89-
$messages[] = $message;
82+
$messages = array($message);
9083
}
9184
$result = 0;
9285
foreach ($messages as $msg) {
9386
try {
94-
$ok = $this->transport->send($msg);
95-
} catch (RecipientsListEmptyException $e) {
96-
$ok = false;
97-
}
98-
if ($ok) {
87+
$this->transport->send($msg);
9988
$result++;
89+
} catch (TransportException $exception) {
90+
if (!$personal) {
91+
throw $exception;
92+
}
10093
}
10194
}
10295
return $result;

0 commit comments

Comments
 (0)