While Mailgun does an excellent job at implementing the adapter pattern, coding to an interface, using PSR, and other things, this package does not. The curl extension is the only requirement for this package.
I often found myself needing a quick, simple solution for sending email when using PHP. I love Mailgun, but always felt like their PHP client included too many features for what I needed to do. So I wrote a very limited API client that only does one thing, and it does it well.
composer require bulldog/mailgun
<?php
use Bulldog\Mailgun;
$mg = new Mailgun('mg.your-domain.com', 'key-tops3cretk3y');
$mg->send('[email protected]', '[email protected]', 'Important Subject', 'Your message.');
The fifth param for the send method accepts an array. In that array you can add any of the params listed in the Mailgun docs. So if you need to cc someone, you would:
<?php
use Bulldog\Mailgun;
$mg = new Mailgun('mg.your-domain.com', 'key-tops3cretk3y');
$mg->send('[email protected]', '[email protected]', 'Important Subject', 'Your message.', [
'cc' => '[email protected]',
]);
Or if you wanted to send an email, you could do the following:
<?php
use Bulldog\Mailgun;
$mg = new Mailgun('mg.your-domain.com', 'key-tops3cretk3y');
$mg->send('[email protected]', '[email protected]', 'Important Subject', 'Your message.', [
'html' => '<html><head></head><body><h1>Hi there</h1></body></html>',
]);
You can add as many additional params as you need.
<?php
use Bulldog\Mailgun;
$mg = new Mailgun('mg.your-domain.com', 'key-tops3cretk3y');
$mg->send('[email protected]', '[email protected]', 'Important Subject', 'Your message.', [
'cc' => '[email protected]',
'v:important' => 'true',
'o:tag' => 'client_x_email',
]);
https://documentation.mailgun.com/en/latest/api-sending.html#sending
This package will work with, and tested on the following PHP versions:
- 5.5
- 5.6
- 7.0
- 7.1
- 7.2
- 7.3
You must have the curl extension installed to use this package.
Always welcome! Just keep it simple, please. Open an issue for discussion, then fork the repo, create a topic branch, and do a pull request. We can figure everything else out later.