Skip to content

Commit f89d839

Browse files
author
Bernhard Breytenbach
authored
Add ability to fetch email messages created by Verify email verification (messagebird#171)
* Feature: Add ability to fetch an Email Message * Feature: Fix docblock to allow for email * Add example of how to send a verify email message * Add example of how to fetch an emailmessage
1 parent 53692f9 commit f89d839

File tree

6 files changed

+129
-2
lines changed

6 files changed

+129
-2
lines changed

examples/emailmessages-view.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
use MessageBird\Client;
4+
5+
require_once(__DIR__ . '/../autoload.php');
6+
7+
$messageBird = new Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
8+
9+
try {
10+
$emailMessageResult = $messageBird->emailmessages->read('ca0a8220453bc36ddeb3115a37400870'); // Set a message id here
11+
var_dump($emailMessageResult);
12+
} catch (\MessageBird\Exceptions\AuthenticateException $e) {
13+
// That means that your accessKey is unknown
14+
echo 'wrong login';
15+
} catch (\Exception $e) {
16+
var_dump($e->getMessage());
17+
}

examples/verify-create-email.php

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
use MessageBird\Client;
4+
use MessageBird\Exceptions\AuthenticateException;
5+
use MessageBird\Exceptions\BalanceException;
6+
use MessageBird\Objects\Verify;
7+
8+
require_once(__DIR__ . '/../autoload.php');
9+
10+
$messageBird = new Client('YOUR_ACCESS_KEY'); // Set your own API access key here.
11+
12+
$verify = new Verify();
13+
$verify->recipient = 'Client Name <client-email@example.com>';
14+
15+
$extraOptions = [
16+
'type' => 'email',
17+
// This email domain needs to be set up as an email channel in your account at https://dashboard.messagebird.com/en/channels/
18+
'originator' => 'Email Verification <verify@company.com>',
19+
'timeout' => 60,
20+
];
21+
22+
try {
23+
$verifyResult = $messageBird->verify->create($verify, $extraOptions);
24+
var_dump($verifyResult);
25+
} catch (AuthenticateException $e) {
26+
// That means that your accessKey is unknown
27+
echo 'wrong login';
28+
} catch (BalanceException $e) {
29+
// That means that you are out of credits, so do something about it.
30+
echo 'no balance';
31+
} catch (\Exception $e) {
32+
echo $e->getMessage();
33+
}

src/MessageBird/Client.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ class Client
4141
*/
4242
public $groups;
4343

44+
/**
45+
* @var Resources\EmailMessage
46+
*/
47+
public $emailmessages;
48+
4449
/**
4550
* @var Resources\VoiceMessage
4651
*/
@@ -241,6 +246,7 @@ public function __construct($accessKey = null, Common\HttpClient $httpClient = n
241246
$this->hlr = new Resources\Hlr($this->httpClient);
242247
$this->verify = new Resources\Verify($this->httpClient);
243248
$this->balance = new Resources\Balance($this->httpClient);
249+
$this->emailmessages = new Resources\EmailMessage($this->httpClient);
244250
$this->voicemessages = new Resources\VoiceMessage($this->httpClient);
245251
$this->lookup = new Resources\Lookup($this->httpClient);
246252
$this->lookupHlr = new Resources\LookupHlr($this->httpClient);
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?php
2+
3+
namespace MessageBird\Objects;
4+
5+
/**
6+
* Class EmailMessage
7+
*
8+
* @package MessageBird\Objects
9+
*/
10+
class EmailMessage extends Base
11+
{
12+
/**
13+
* An unique random ID which is created on the MessageBird
14+
* platform and is returned upon creation of the object.
15+
*
16+
* @var string
17+
*/
18+
protected $id;
19+
20+
/**
21+
* The status of the Email Message.
22+
*
23+
* @var string
24+
*/
25+
protected $status;
26+
27+
/**
28+
* Get the created id
29+
*
30+
* @return mixed
31+
*/
32+
public function getId()
33+
{
34+
return $this->id;
35+
}
36+
37+
/**
38+
* Get the status
39+
*
40+
* @return string
41+
*/
42+
public function getStatus()
43+
{
44+
return $this->status;
45+
}
46+
}

src/MessageBird/Objects/Verify.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ class Verify extends Base
3131
protected $href;
3232

3333
/**
34-
* The msisdn of the recipient
34+
* The msisdn or email of the recipient
3535
*
36-
* @var int
36+
* @var int|string
3737
*/
3838
public $recipient;
3939

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace MessageBird\Resources;
4+
5+
use MessageBird\Common;
6+
use MessageBird\Objects;
7+
8+
/**
9+
* Class EmailMessage
10+
*
11+
* @package MessageBird\Resources
12+
*/
13+
class EmailMessage extends Base
14+
{
15+
/**
16+
* @param Common\HttpClient $httpClient
17+
*/
18+
public function __construct(Common\HttpClient $httpClient)
19+
{
20+
$this->setObject(new Objects\EmailMessage);
21+
$this->setResourceName('verify/messages/email');
22+
23+
parent::__construct($httpClient);
24+
}
25+
}

0 commit comments

Comments
 (0)