apostle / apostle-php
Apostle PHP Client
Installs: 10 286
Dependents: 1
Suggesters: 0
Security: 0
Stars: 16
Watchers: 6
Forks: 1
Open Issues: 3
Requires
- php: >=5.3.2
- guzzle/guzzle: *
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-11-05 01:09:25 UTC
README
PHP bindings for Apostle.io
Installation
With Composer
Add apostle/apostle-php
to composer.json
.
{ "require": { "apostle/apostle-php": "v0.1.5" } }
Without Composer
Download the latest release. Ensure src
is in your autoload path. If you’re not using auto loading, require the following files:
- Apostle.php
- Apostle\Queue.php
- Apostle\Mail.php
- Aposlte\UninitializedException.php
Prerequisites
Domain Key
You will need to provide your apostle domain key to send emails.
Apostle::setup("your-domain-key");
Sending Email
Sending a single email is easy, the first param is your template's slug, and the second is an array of data.
use Apostle\Mail; $mail = new Mail( "template-slug", array("email" => "mal@apostle.io", "name" => "Mal Curtis") ); $mail->deliver();
You don‘t have to add the data at initialization time, feel free to add it after. You can add in any data your template needs too.
$mail = new Mail("template-slug"); $mail->email = "mal@apostle.io"; $mail->name = "Mal Curtis"; $mail->from = "support@apostle.io"; $mail->replyTo = "doreply@apostle.io"; $mail->website = "apostle.io"; // You can add any data your template needs $mail->deliver();
Attachments can be added by supplying a filename and content as a string.
$mail = new Mail("template-slug"); $mail->addAttachment("test.txt", "Some test text"); $mail->deliver();
Failure
Pass a variable for failure information to the deliver
method.
$mail = new Apostle\Mail("template-slug"); echo $mail->deliver($failure); // false echo $failure; // No email provided
Sending Multiple Emails
To speed up processing, you can send more than one email at a time.
use Apostle\Mail; use Apostle\Queue; $queue = new Queue(); for($i=0;$i<5;$i++){ $mail = new Mail("template-slug"); $mail->email = "user" . $i . "@example.org"; $queue->add($mail); } $queue->deliver();
Failures
If any Mail
object fails validation then no emails will be sent. To retrieve failed objects, you can supply a variable to be populated.
use Apostle\Mail; use Apostle\Queue; $queue = new Queue(); $mail = new Mail("template-slug"); $queue->add($mail); $mail = new Mail(null, ["email" => "user@example.org"]); $queue->add($mail); echo $queue->deliver($failures); // false echo count($failures); // 2 echo $failures[0]->deliveryError(); // "No email provided" echo $failures[1]->deliveryError(); // "No template provided"
Requirements
- PHP 5.3+
Who
Created with ♥ by Mal Curtis (@snikchnz)
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request