Perl wrapper for Mailgun (http://mailgun.org)
use Mailgun;
Mailgun is a email service which provides email over a http restful API. These bindings goal is to create a perl interface which allows you to easily leverage it.
use WWW::Mailgun;
my $mg = WWW::Mailgun->new({
key => 'key-yOuRapiKeY',
domain => 'YourDomain.mailgun.org',
from => 'elb0w <[email protected]>' # Optionally set here, you can set it when you send
});
# Get stats http://documentation.mailgun.net/api-stats.html
my $obj = $mg->stats;
# Get logs http://documentation.mailgun.net/api-logs.html
my $obj = $mg->logs;
Creates your mailgun object
from => the only optional field, it can be set in the message.
Send takes in a hash of settings Takes all specificed here http://documentation.mailgun.net/api-sending.html 'from' is optionally set here, otherwise you can set it in the constructor and it can be used for everything
$mg->send({
to => '[email protected]',
subject => 'hello',
html => '<html><h3>hello</h3><strong>world</strong></html>',
attachment => ['/Users/elb0w/GIT/Personal/Mailgun/test.pl']
});
$mg->send({
to => '[email protected]',
subject => 'hello',
html => '<html><h3>hello</h3><strong>world</strong></html>',
attachment => [ undef, 'something.txt', 'Hello from inside the file' ],
});
$mg->send({
to => '[email protected]',
subject => 'hello',
html => '<html><h3>hello</h3><strong>world</strong></html>',
attachments => [
[ '/Users/elb0w/GIT/Personal/Mailgun/test.pl' ],
[ undef, 'something.txt', 'Hello from inside the file' ],
],
});
$mg->send({
to => '[email protected]',
subject => 'hello',
text => 'Hello there',
});
$mg->send({
to => '[email protected]',
subject => 'hello',
text => 'Hello there',
html => '<b>Hello there</b>'
});
Helper methods all take a method argument (del, post, get) #http://documentation.mailgun.net/api_reference.html Post optionally takes a hash of properties
# View all unsubscribes http://documentation.mailgun.net/api-unsubscribes.html
my $all = $mg->unsubscribes;
# Unsubscribe user from all
$mg->unsubscribes('post',{address => '[email protected]', tag => '*'});
# Delete a user from unsubscriptions
$mg->unsubscribes('del','[email protected]');
# Get a user from unsubscriptions
$mg->unsubscribes('get','[email protected]');
# View all spam complaints http://documentation.mailgun.net/api-complaints.html
my $all = $mg->complaints;
# Add a spam complaint for a address
$mg->complaints('post',{address => '[email protected]'});
# Remove a complaint
$mg->complaints('del','[email protected]');
# Get a complaint for a adress
$mg->complaints('get','[email protected]');
# View the list of bounces http://documentation.mailgun.net/api-bounces.html
my $all = $mg->bounces;
# Add a permanent bounce
$mg->bounces('post',{
address => '[email protected]',
code => 550, #This is default
error => 'Error Description' #Empty by default
});
# Remove a bounce
$mg->bounces('del','[email protected]');
# Get a bounce for a specific address
$mg->bounces('get','[email protected]');
Mailboxes Campaigns Mailing Lists Routes
--Add Moose version
George Tsafas [email protected]
elb0w on irc.freenode.net #perl