Skip to content

Commit

Permalink
fix: error sending messages
Browse files Browse the repository at this point in the history
  • Loading branch information
mikejpeters committed Oct 29, 2019
1 parent 11ba5f1 commit d48bd8d
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 8 deletions.
9 changes: 5 additions & 4 deletions src/Mailer.php
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,12 @@ protected function sendMessage($message)
{
Yii::info('Sending email', __METHOD__);

$this->getMailgun()->post("{$this->domain}/messages",
$message->getMessageBuilder()->getMessage(),
$message->getMessageBuilder()->getFiles());
$this->getMailgun()->messages()->send(
$this->domain,
$message->getMessageBuilder()->getMessage()
);

return true;
return true;
}

/**
Expand Down
10 changes: 10 additions & 0 deletions src/Message.php
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,16 @@ public function toString()
return VarDumper::dumpAsString($this->getMessageBuilder()->getMessage());
}

/**
* Sets whether the message in test mode.
* When you do this, Mailgun will accept the message but will not send it. This is useful for testing purposes.
*/
public function setTestMode(bool $enabled): self {
$this->getMessageBuilder()->setTestMode($enabled);

return $this;
}

/**
* Creates the Mailgun message builder.
* @return MessageBuilder message builder.
Expand Down
2 changes: 1 addition & 1 deletion tests/MailerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ protected function setUp(): void
]);
}

public function testInitializesMailgun(): void
public function testGetMailgun(): void
{
$mailgun = Yii::$app->mailer->getMailgun();
$this->assertInstanceOf(\Mailgun\Mailgun::class, $mailgun);
Expand Down
17 changes: 14 additions & 3 deletions tests/MessageTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,29 @@ protected function setUp(): void
'components' => [
'mailer' => [
'class' => 'boundstate\mailgun\Mailer',
'key' => 'key-example',
'domain' => 'mg.example.com',
'key' => '801b0ee9ba59f340019da1c62a9f31df-816b23ef-3007ca87',
'domain' => 'sandbox475d21b1d2084dd5af26f3612111b476.mailgun.org',
],
]
]);
}

public function testHtmlMessage(): void
public function testCompose(): void
{
$message = Yii::$app->mailer->compose('example', ['name' => 'John']);
$html = $message->getMessageBuilder()->getMessage()['html'];

$this->assertEquals($html, '<p>Hi John!</p>');
}

public function testSend(): void
{
$message = Yii::$app->mailer->compose('example', ['name' => 'John'])
->setTo('[email protected]')
->setFrom('[email protected]')
->setSubject('Test')
->setTestMode(true);

$this->assertTrue($message->send());
}
}

0 comments on commit d48bd8d

Please sign in to comment.