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 => '[email protected]',
to => '[email protected]',
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 => '[email protected]',
to => '[email protected]',
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 => '[email protected]', # Mailing list address
name => 'ml sample', # Mailing list name (Optional)
description => 'sample', # description (Optional)
access_level => 'members', # readonly(default), members, everyone
});
https://documentation.mailgun.com/api-mailinglists.html#mailing-lists
Get detail for mailing list.
# get mailing list detail
my $data = $mailgun->list('[email protected]');
https://documentation.mailgun.com/api-mailinglists.html#mailing-lists
Update mailing list detail.
# update mailing list
my $res = $mailgun->update_list('[email protected]' => {
address => '[email protected]', # Mailing list address (Optional)
name => 'ml sample', # Mailing list name (Optional)
description => 'sample', # description (Optional)
access_level => 'members', # readonly(default), members, everyone
});
https://documentation.mailgun.com/api-mailinglists.html#mailing-lists
Delete mailing list.
# delete mailing list
my $res = $mailgun->delete_list('[email protected]');
https://documentation.mailgun.com/api-mailinglists.html#mailing-lists
Get members for mailing list.
# get members
my $res = $mailgun->list_members('[email protected]');
https://documentation.mailgun.com/api-mailinglists.html#mailing-lists
Add member for mailing list.
# add member
my $res = $mailgun->add_list_member('[email protected]' => {
address => '[email protected]', # 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
});
https://documentation.mailgun.com/api-mailinglists.html#mailing-lists
Adds multiple members for mailing list.
use JSON::XS; # auto export 'encode_json'
# add members
my $res = $mailgun->add_list_members('[email protected]' => {
members => encode_json [
{ address => '[email protected]' },
{ address => '[email protected]' },
{ address => '[email protected]' },
],
upsert => 'no', # no (default). if yes, update exists member
});
# too simple
my $res = $mailgun->add_list_members('[email protected]' => {
members => encode_json [qw/[email protected] [email protected]/],
});
https://documentation.mailgun.com/api-mailinglists.html#mailing-lists
Get member detail.
# update member
my $res = $mailgun->list_member('[email protected]', '[email protected]');
https://documentation.mailgun.com/api-mailinglists.html#mailing-lists
Update member detail.
# update member
my $res = $mailgun->update_list_member('[email protected]', '[email protected]' => {
address => '[email protected]', # member address (Optional)
name => 'username', # member name (Optional)
vars => '{"age": 34}', # member params(JSON string) (Optional)
subscribed => 'yes', # yes(default) or no
});
https://documentation.mailgun.com/api-mailinglists.html#mailing-lists
Delete member for mailing list.
# delete member
my $res = $mailgun->delete_list_member('[email protected]' => '[email protected]');
https://documentation.mailgun.com/api-mailinglists.html#mailing-lists
Get event data.
# get event data
my ($events, $purl) = $mailgun->event({ event => 'stored', limit => 50 });
Get stored message.
# get event data
my ($events, $purl) = $mailgun->event({ event => 'stored' });
my $msg = $mailgun->get_message_from_event($events->[0]);
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);
// ...
this API not implement yet.
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 [email protected]