The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

_prepare_content($option__values) : \@content

Given a $option__values hashref, transform it to an arrayref suitable for sending as multipart/form-data. The core logic here is that array references are modified from:

option => [ value1, value2, ... ]

to

[ option => value1, option => value2, ... ]

NAME

WWW::Mailgun - Perl wrapper for Mailgun (http://mailgun.org)

SYNOPSIS

use WWW::Mailgun;

my $mg = WWW::Mailgun->new({
    key => 'key-yOuRapiKeY',
    domain => 'YourDomain.mailgun.org',
    from => 'elb0w <elb0w@YourDomain.mailgun.org>' # Optionally set here, you can set it when you send
});

#sending examples below

# 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;

DESCRIPTION

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.

USAGE

new({key => 'mailgun key', domain => 'your mailgun domain', from => 'optional from')

Creates your mailgun object

from => the only optional field, it can be set in the message.

send($data)

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

Send a HTML message with optional array of attachments
$mg->send({
      to => 'some_email@gmail.com',
      subject => 'hello',
      html => '<html><h3>hello</h3><strong>world</strong></html>',
      attachment => ['/Users/elb0w/GIT/Personal/Mailgun/test.pl']
});
Send a text message
$mg->send({
      to => 'some_email@gmail.com',
      subject => 'hello',
      text => 'Hello there'
});
Send a MIME multipart message
$mg->send({
      to      => 'some_email@gmail.com',
      subject => 'hello',
      text    => 'Hello there',
      html    => '<b>Hello there</b>'
});

unsubscribes, bounces, spam

Helper methods all take a method argument (del, post, get) http://documentation.mailgun.net/api_reference.html 'post' optionally takes a hash of properties

Unsubscribes
# View all unsubscribes L<http://documentation.mailgun.net/api-unsubscribes.html>
my $all = $mg->unsubscribes;

# Unsubscribe user from all
$mg->unsubscribes('post',{address => 'user@website.com', tag => '*'});

# Delete a user from unsubscriptions
$mg->unsubscribes('del','user@website.com');

# Get a user from unsubscriptions
$mg->unsubscribes('get','user@website.com');
Complaints
# View all spam complaints L<http://documentation.mailgun.net/api-complaints.html>
my $all = $mg->complaints;

# Add a spam complaint for a address
$mg->complaints('post',{address => 'user@website.com'});

# Remove a complaint
$mg->complaints('del','user@website.com');

# Get a complaint for a adress
$mg->complaints('get','user@website.com');
Bounces
# View the list of bounces L<http://documentation.mailgun.net/api-bounces.html>
my $all = $mg->bounces;

# Add a permanent bounce
$mg->bounces('post',{
    address => 'user@website.com',
    code => 550, #This is default
    error => 'Error Description' #Empty by default
});

# Remove a bounce
$mg->bounces('del','user@website.com');

# Get a bounce for a specific address
$mg->bounces('get','user@website.com');

TODO

Mailboxes
Campaigns
Mailing Lists
Routes

Author

George Tsafas <elb0w@elbowrage.com>

Support

elb0w on irc.freenode.net #perl https://github.com/gtsafas/mailgun.perl

Resources

http://documentation.mailgun.net/

6 POD Errors

The following errors were encountered while parsing the POD:

Around line 259:

'=item' outside of any '=over'

Around line 286:

You forgot a '=back' before '=head2'

Around line 293:

'=item' outside of any '=over'

Around line 341:

You forgot a '=back' before '=head1'

Around line 343:

'=item' outside of any '=over'

Around line 351:

You forgot a '=back' before '=head1'