WebService::Mailgun - API client for Mailgun (https://mailgun.com/)
use WebService::Mailgun; my $mailgun = WebService::Mailgun->new( api_key => '<YOUR_API_KEY>', domain => '<YOUR_MAIL_DOMAIN>', ); # send mail my $res = $mailgun->message({ from => 'foo@example.com', to => 'bar@example.com', subject => 'test', text => 'text', });
WebService::Mailgun is API client for Mailgun (https://mailgun.com/).
Create mailgun object.
The RaiseError attribute can be used to force errors to raise exceptions rather than simply return error codes in the normal way. It is "off" by default.
return recent error message.
return recent API result status_line.
Send email message.
# send mail my $res = $mailgun->message({ from => 'foo@example.com', to => 'bar@example.com', subject => 'test', text => 'text', });
https://documentation.mailgun.com/api-sending.html#sending
Get list of mailing lists.
# get mailing lists my $lists = $mailgun->lists(); # => ArrayRef of mailing list object.
https://documentation.mailgun.com/api-mailinglists.html#mailing-lists
Add mailing list.
# add mailing list my $res = $mailgun->add_list({ address => 'ml@example.com', # Mailing list address name => 'ml sample', # Mailing list name (Optional) description => 'sample', # description (Optional) access_level => 'members', # readonly(default), members, everyone });
Get detail for mailing list.
# get mailing list detail my $data = $mailgun->list('ml@exmaple.com');
Update mailing list detail.
# update mailing list my $res = $mailgun->update_list('ml@example.com' => { address => 'ml@example.com', # Mailing list address (Optional) name => 'ml sample', # Mailing list name (Optional) description => 'sample', # description (Optional) access_level => 'members', # readonly(default), members, everyone });
Delete mailing list.
# delete mailing list my $res = $mailgun->delete_list('ml@example.com');
Get members for mailing list.
# get members my $res = $mailgun->list_members('ml@example.com');
Add member for mailing list.
# add member my $res = $mailgun->add_list_member('ml@example.com' => { address => 'user@example.com', # member address name => 'username', # member name (Optional) vars => '{"age": 34}', # member params(JSON string) (Optional) subscribed => 'yes', # yes(default) or no upsert => 'no', # no (default). if yes, update exists member });
Adds multiple members for mailing list.
use JSON::XS; # auto export 'encode_json' # add members my $res = $mailgun->add_list_members('ml@example.com' => { members => encode_json [ { address => 'user1@example.com' }, { address => 'user2@example.com' }, { address => 'user3@example.com' }, ], upsert => 'no', # no (default). if yes, update exists member }); # too simple my $res = $mailgun->add_list_members('ml@example.com' => { members => encode_json [qw/user1@example.com user2@example.com/], });
Get member detail.
# update member my $res = $mailgun->list_member('ml@example.com', 'user@example.com');
Update member detail.
# update member my $res = $mailgun->update_list_member('ml@example.com', 'user@example.com' => { address => 'user@example.com', # member address (Optional) name => 'username', # member name (Optional) vars => '{"age": 34}', # member params(JSON string) (Optional) subscribed => 'yes', # yes(default) or no });
Delete member for mailing list.
# delete member my $res = $mailgun->delete_list_member('ml@example.com' => 'user@example.com');
Get event data.
# get event data my ($events, $purl) = $mailgun->event({ event => 'stored', limit => 50 });
Events
Get stored message.
# get event data my ($events, $purl) = $mailgun->event({ event => 'stored' }); my $msg = $mailgun->get_message_from_event($events->[0]);
Stored Message
event method return previous url. it can use for fetch event.
# event Pooling my ($events, $purl) = $mailgun->event({ event => 'stored', begin => localtime->epoch() }); // do something ... $events = $mailgun->event($purl); // ...
Event Polling
this API not implement yet.
Domains
Stats
Tags
Suppressions
Routes
Webhooks
Email Validation
WWW::Mailgun, https://documentation.mailgun.com/
Copyright (C) Kan Fushihara.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Kan Fushihara <kan.fushihara@gmail.com>
To install WebService::Mailgun, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WebService::Mailgun
CPAN shell
perl -MCPAN -e shell install WebService::Mailgun
For more information on module installation, please visit the detailed CPAN module installation guide.