Amazon-SES
view release on metacpan or search on metacpan
lib/Amazon/SES.pm view on Meta::CPAN
printf("Sent successfully. MessageID: %s\n", $r->message_id);
######### sending attachments
my $msg = MIME::Entity->build();
my $r = $ses->send( $msg );
=head1 DESCRIPTION
Implements Amazon Web Services' Simple Email Service (SES). Sess L<http://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html> for details and to sign-up for the service. Forked from Net::AWS::SES, changed to use Moops and updated to support ...
=head1 GETTING STARTED
After you sign-up for AWS SES service you need to create an C<IAM> credentials and create an C<access_key> and a C<secret_key>, which you will be needing to interface with the SES. Do not forget to grant permission to your C<IAM> to use SES. Read L<h...
=head1 METHODS
I attempted to make the method names as Perlish as possible, as opposed to direct copy/paste from the API reference. This way I felt you didn't have to be familiar with the full API reference in order to use the basic features of the service.
If you are avid AWS developer there is a C<call()> method, which gives you access to all the documented Query actions of the AWS SES. In fact, that's what all the methods use to hide the complexity of the request/response. There are few examples of t...
All the methods (including C<call()>) returns an instance of L<Response|Amazon::SES::Response>. You should check if the the call is success by testing for C<is_success> attribute of the response. If you want to gain full access to the raw parsed cone...
=head2 new(access_key => $key, secret_key => $s_key)
=head2 new(access_key => $key, secret_key => $s_key, region => $region)
=head2 new(use_iam_role => 1)
Returns a Amazon::SES instance. C<access_key> and C<secret_key> arguments are optional if not specifying to C<use_iam_role>. C<region> is optional, and can be overriden in respective api calls. Must be a valid SES region: C<us-east-1>, C<us-west-2> o...
=head2 send( $msg )
=head2 send(%options)
Sends an email address and returns L<Response|Amazon::SES::Response> instance.
If the only argument is passed, it must be an instance of MIME::Entity. Example:
$msg = MIME::Entity->build(
from => '[your address]',
to => '[your recipient]',
subject => 'MIME msg from AWS SES',
data => "<h1>Hello world from AWS SES</h1>",
type => 'text/html'
);
$msg->attach(
Path => File::Spec->catfile( 't', 'image.gif' ),
Type => 'image/gif',
Encoding => 'base64'
);
$ses = Amazon::SES->new(....);
$r = $ses->send($msg);
unless ( $r->is_success ) {
die $r->error_message;
}
If you don't have MIME::Entity instance handy you may use the following arguments to have AWS SES build the message for you (bold entries are required): C<From>, B<To>, B<Subject>, B<Body>, C<Body_html>, C<ReturnPath>. To send e-mail to multiple emai...
If C<From> is missing it defaults to your default e-mail given to C<new()>. Remember: this must be a verified e-mail. Example:
$r = $ses->send(
from => '[your email address]',
to => '[destination email address]',
subject => 'Hello World'
body => 'Hello World'
);
unless ( $r->is_success ) {
die $r->error_message;
}
You may provide an alternate html content by passing C<body_html> header.
C<charset> of the e-mail is set to 'UTF-8'. As of this writing I didn't make any way to affect this.
Success calls also return a C<message_id>, which can be accessed using a shortcut C<$r->message_id> syntax. See L<Response class|Amazon::SES::Response>.
Sample successful response looks like this in JSON:
{
"MessageId": "00000141344ce1a8-0664c3c5-e9a0-4b47-aa2e-12b0bdf6070e-000000"
}
Sample error response looks like as:
{
"Error": {
"Code": "MessageRejected",
"Type": "Sender",
"Message": "Email address is not verified."
},
"xmlns": "http://ses.amazonaws.com/doc/2010-12-01/",
"RequestId":"0d04b41a-20dd-11e3-b01b-51d07c103915"
}
=head2 verify_email($email)
Verifies a given C<$email> with AWS SES. This results a verification e-mail be sent from AWS to the e-mail with a verification link, which must be clicked before this e-mail address appears in C<From> header. Returns a L<Response|Amazon::SES::Respons...
Sample successful response:
{} # right, it's empty.
=head2 list_emails()
Retrieves list e-mail addresses. Returns L<Response|Amazon::SES::Response> instance.
Sample response:
{
"Identities": ["example@example.com", "sample@example.com"]
}
=head2 list_domains()
Retrieves list of domains. Returns L<Response|Amazon::SES::Response> instance.
( run in 0.560 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )