Module erlcloud_ses

An Erlang interface to Amazon's Simple Email Service (SES).

Authors: Ransom Richardson (ransom@ransomr.net), Nicholas Lundgaard (nalundgaard@gmail.com).

Description

An Erlang interface to Amazon's Simple Email Service (SES)

Methods not implemented: * DeleteIdentityPolicy * DeleteVerifiedEmailAddress (deprecated; use DeleteIdentity) * GetIdentityPolicies * ListIdentityPolicies * ListVerifiedEmailAddresses (deprecated; use ListIdentities) * PutIdentityPolicy * SendRawEmail * VerifyEmailAddress (deprecated; use VerifyEmailIdentity)

Data Types

delete_identity_result()

delete_identity_result() = ok | {error, term()}

dkim_attributes()

dkim_attributes() = [{email(), [{dkim_enabled, boolean()} | {dkim_verification_status, verification_status()} | {dkim_tokens, [string()]}]}]

domain()

domain() = string() | binary()

email()

email() = string() | binary()

emails()

emails() = email() | [email()]

get_identity_dkim_attributes_result()

get_identity_dkim_attributes_result() = {ok, [{dkim_attributes, dkim_attributes()}]} | {error, term()}

get_identity_notification_attributes_result()

get_identity_notification_attributes_result() = {ok, [{notification_attributes, notification_attributes()}]} | {error, term()}

get_identity_verification_attributes_result()

get_identity_verification_attributes_result() = {ok, [{verification_attributes, verification_attributes()}]} | {error, term()}

get_send_quota_result()

get_send_quota_result() = {ok, [{sent_last_24_hours, float()} | {max_24_hour_send, float()} | {max_send_rate, float()}]} | {error, term()}

get_send_statistics_result()

get_send_statistics_result() = {ok, [{send_data_points, send_data_point()}]} | {error, term()}

identities()

identities() = identity() | [identity()]

identity()

identity() = string() | binary()

identity_type()

identity_type() = email_address | domain

list_identities_opt()

list_identities_opt() = {identity_type, identity_type()} | {max_items, pos_integer()} | {next_token, string() | binary()}

list_identities_opts()

list_identities_opts() = [list_identities_opt()]

list_identities_result()

list_identities_result() = {ok, [{identities, [string()]} | {next_token, string()}]} | {error, term()}

notification_attributes()

notification_attributes() = [{email(), [{forwarding_enabled, boolean()} | {bounce_topic, string()} | {complaint_topic, string()} | {delivery_topic, string()}]}]

notification_type()

notification_type() = bounce | complaint | delivery

send_data_point()

send_data_point() = [{delivery_attempts, integer()} | {timestamp, string()} | {rejects, integer()} | {bounces, integer()} | {complaints, integer()}]

send_email_body()

send_email_body() = string() | binary() | [{Type::text | html, send_email_content()}]

send_email_content()

send_email_content() = string() | binary() | [{Type::data | charset, string() | binary()}]

send_email_destination()

send_email_destination() = email() | [send_email_destination_pair()]

send_email_destination_pair()

send_email_destination_pair() = {to_addresses, emails()} | {cc_addresses, emails()} | {bcc_addresses, emails()}

send_email_opt()

send_email_opt() = {reply_to_addresses, emails()} | {return_path, email()}

send_email_opts()

send_email_opts() = [send_email_opt()]

send_email_result()

send_email_result() = {ok, [{message_id, string()}]} | {error, term()}

send_email_source()

send_email_source() = email()

send_email_subject()

send_email_subject() = send_email_content()

set_identity_dkim_enabled_result()

set_identity_dkim_enabled_result() = ok | {error, term()}

set_identity_feedback_forwarding_enabled_result()

set_identity_feedback_forwarding_enabled_result() = ok | {error, term()}

set_identity_notification_topic_result()

set_identity_notification_topic_result() = ok | {error, term()}

sns_topic()

sns_topic() = string() | binary()

verification_attributes()

verification_attributes() = [{email(), [{verification_status, verification_status()} | {verification_token, string()}]}]

verification_status()

verification_status() = pending | success | failed | temporary_failure | not_started

verify_domain_dkim_result()

verify_domain_dkim_result() = {ok, [{dkim_tokens, [string()]}]} | {error, term()}

verify_domain_identity_result()

verify_domain_identity_result() = {ok, [{verification_token, string()}]} | {error, term()}

verify_email_identity_result()

verify_email_identity_result() = ok | {error, term()}

Function Index

configure/2
configure/3
delete_identity/1
delete_identity/2 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_DeleteIdentity.html
get_identity_dkim_attributes/1
get_identity_dkim_attributes/2 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_GetIdentityDkimAttributes.html
get_identity_notification_attributes/1
get_identity_notification_attributes/2 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_GetIdentityNotificationAttributes.html
get_identity_verification_attributes/1
get_identity_verification_attributes/2 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_GetIdentityVerificationAttributes.html
get_send_quota/0
get_send_quota/1 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_GetSendQuota.html
get_send_statistics/0
get_send_statistics/1 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_GetSendStatistics.html
list_identities/0
list_identities/1
list_identities/2 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_ListIdentities.html
new/2
new/3
send_email/4
send_email/5
send_email/6 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_SendEmail.html
set_identity_dkim_enabled/2
set_identity_dkim_enabled/3 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_SetIdentityDkimEnabled.html
set_identity_feedback_forwarding_enabled/2
set_identity_feedback_forwarding_enabled/3 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_SetIdentityFeedbackForwardingEnabled.html
set_identity_notification_topic/3
set_identity_notification_topic/4 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_SetIdentityFeedbackForwardingEnabled.html
verify_domain_dkim/1
verify_domain_dkim/2 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_VerifyDomainIdentity.html
verify_domain_identity/1
verify_domain_identity/2 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_VerifyDomainIdentity.html
verify_email_identity/1
verify_email_identity/2 SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_VerifyEmailIdentity.html

Function Details

configure/2

configure(AccessKeyID::string(), SecretAccessKey::string()) -> ok

configure/3

configure(AccessKeyID::string(), SecretAccessKey::string(), Host::string()) -> ok

delete_identity/1

delete_identity(Identity) -> any()

delete_identity/2

delete_identity(Identity::identity(), Config::aws_config()) -> delete_identity_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_DeleteIdentity.html

Example

Delete an identity.

ok = erlcloud_ses:delete_identity(<<"user@example.com">>).

get_identity_dkim_attributes/1

get_identity_dkim_attributes(Identities) -> any()

get_identity_dkim_attributes/2

get_identity_dkim_attributes(Identities::identities(), Config::aws_config()) -> get_identity_dkim_attributes_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_GetIdentityDkimAttributes.html

Example

Get DKIM attributes for an identity.

{ok, [{dkim_attributes, [{"amazon.com", [{dkim_enabled, true}, {dkim_verification_status, success}, {dkim_tokens,["vvjuipp74whm76gqoni7qmwwn4w4qusjiainivf6f", "3frqe7jn4obpuxjpwpolz6ipb3k5nvt2nhjpik2oy", "wrqplteh7oodxnad7hsl4mixg2uavzneazxv5sxi2"]}]}]}]} = erlcloud_ses:get_identity_dkim_attributes(["amazon.com"]).

get_identity_notification_attributes/1

get_identity_notification_attributes(Identities) -> any()

get_identity_notification_attributes/2

get_identity_notification_attributes(Identities::identities(), Config::aws_config()) -> get_identity_notification_attributes_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_GetIdentityNotificationAttributes.html

Example

Get notification attributes for an identity.

{ok, [{notification_attributes, [{"user@example.com", [{forwarding_enabled, true}, {bounce_topic, "arn:aws:sns:us-east-1:123456789012:example"}, {complaint_topic, "arn:aws:sns:us-east-1:123456789012:example"}, {delivery_topic, "arn:aws:sns:us-east-1:123456789012:example"}]}]}]} = erlcloud_ses:get_identity_notification_attributes(["user@example.com"]).

get_identity_verification_attributes/1

get_identity_verification_attributes(Identities) -> any()

get_identity_verification_attributes/2

get_identity_verification_attributes(Identities::identities(), Config::aws_config()) -> get_identity_verification_attributes_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_GetIdentityVerificationAttributes.html

Example

Get verification attributes for an identity.

{ok, [{verification_attributes, [{"domain.com", [{verification_status, pending}, {verification_token, "QTKknzFg2J4ygwa+XvHAxUl1hyHoY0gVfZdfjIedHZ0="}]}, {"user@domain.com", [{verification_status, pending}]}]}]} = erlcloud_ses:get_identity_verification_attributes(["user@domain.com", "domain.com"]).

get_send_quota/0

get_send_quota() -> any()

get_send_quota/1

get_send_quota(Config::aws_config()) -> get_send_quota_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_GetSendQuota.html

Example

Get the send quota.

{ok, [{sent_last_24_hours, 127.0}, {max_24_hour_send, 200.0}, {max_send_rate, 1.0}]} = erlcloud_ses:get_send_quota().

get_send_statistics/0

get_send_statistics() -> any()

get_send_statistics/1

get_send_statistics(Config::aws_config()) -> get_send_statistics_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_GetSendStatistics.html

Example

Get send statistics.

{ok,[{send_data_points, [[{delivery_attempts,7}, {timestamp,"2011-08-03T06:53:00Z"}, {rejects,0}, {bounces,0}, {complaints,0}], ... ]}]} = erlcloud_ses:get_send_statistics().

list_identities/0

list_identities() -> any()

list_identities/1

list_identities(Aws_config) -> any()

list_identities/2

list_identities(Opts::list_identities_opts(), Config::aws_config()) -> list_identities_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_ListIdentities.html

Example

List identities.

{ok, [{identities, ["example.com", "user@example.com"]}]} = erlcloud_ses:list_identities().

All supported inputs.

{ok, [{identities, ["example.com"]}, {next_token, "..."}]} = erlcloud_ses:list_identities([{identity_type, domain}, {max_items, 1}, {next_token, "..."}]).

new/2

new(AccessKeyID::string(), SecretAccessKey::string()) -> aws_config()

new/3

new(AccessKeyID::string(), SecretAccessKey::string(), Host::string()) -> aws_config()

send_email/4

send_email(Destination, Body, Subject, Source) -> any()

send_email/5

send_email(Destination, Body, Subject, Source, Aws_config) -> any()

send_email/6

send_email(Destination::send_email_destination(), Body::send_email_body(), Subject::send_email_subject(), Source::send_email_source(), Opts::send_email_opts(), Config::aws_config()) -> send_email_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_SendEmail.html

Example

Send a simple email.

{ok, [{message_id, "00000131d51d2292-159ad6eb-077c-46e6-ad09-ae7c05925ed4-000000"}]} = erlcloud_ses:send_email(<<"a@to.com">>, <<"Email Body">>, <<"Subject">>, <<"b@from.com">>, []).

All supported inputs.

{ok, [{message_id, "00000131d51d2292-159ad6eb-077c-46e6-ad09-ae7c05925ed4-000000"}]} = erlcloud_ses:send_email([{bcc_addresses, [<<"a@bcc.com">>, "b@bcc.com"]}, {cc_addresses, [<<"c@cc.com">>]}, {to_addresses, ["d@to.com"]}], [{html, [{charset, "html charset"}, {data, "html data"}]}, {text, [{charset, "text charset"}, {data, "text data"}]}], [{charset, "subject charset"}, {data, "subject data"}], "e@from.com", [{reply_to_addresses, [<<"f@reply.com">>, "g@reply.com"]}, {return_path, "return path"}]).

set_identity_dkim_enabled/2

set_identity_dkim_enabled(Identity, DkimEnabled) -> any()

set_identity_dkim_enabled/3

set_identity_dkim_enabled(Identity::identity(), DkimEnabled::boolean(), Config::aws_config()) -> set_identity_dkim_enabled_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_SetIdentityDkimEnabled.html

Example

Enable DKIM for an identity.

ok = erlcloud_ses:set_identity_dkim_enabled(<<"user@example.com">>, true).

set_identity_feedback_forwarding_enabled/2

set_identity_feedback_forwarding_enabled(Identity, ForwardingEnabled) -> any()

set_identity_feedback_forwarding_enabled/3

set_identity_feedback_forwarding_enabled(Identity::identity(), ForwardingEnabled::boolean(), Config::aws_config()) -> set_identity_feedback_forwarding_enabled_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_SetIdentityFeedbackForwardingEnabled.html

Example

Enable feedback forwarding for an identity.

ok = erlcloud_ses:set_identity_feedback_forwarding_enabled(<<"user@example.com">>, true).

set_identity_notification_topic/3

set_identity_notification_topic(Identity, NotificationType, SnsTopic) -> any()

set_identity_notification_topic/4

set_identity_notification_topic(Identity::identity(), NotificationType::notification_type(), SnsTopic::sns_topic(), Config::aws_config()) -> set_identity_notification_topic_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_SetIdentityFeedbackForwardingEnabled.html

Example

Set the bounce notification topic for an identity.

ok = erlcloud_ses:set_identity_notification_topic(<<"user@example.com">>, bounce, <<"arn:aws:sns:us-east-1:123456789012:example">>).

verify_domain_dkim/1

verify_domain_dkim(Domain) -> any()

verify_domain_dkim/2

verify_domain_dkim(Domain::domain(), Config::aws_config()) -> verify_domain_dkim_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_VerifyDomainIdentity.html

Example

Get DKIM tokens for a domain.

{ok, [{dkim_tokens, ["vvjuipp74whm76gqoni7qmwwn4w4qusjiainivf6sf", "3frqe7jn4obpuxjpwpolz6ipb3k5nvt2nhjpik2oy", "wrqplteh7oodxnad7hsl4mixg2uavzneazxv5sxi2"]}]} = erlcloud_ses:verify_domain_dkim(<<"example.com">>).

verify_domain_identity/1

verify_domain_identity(Domain) -> any()

verify_domain_identity/2

verify_domain_identity(Domain::domain(), Config::aws_config()) -> verify_domain_identity_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_VerifyDomainIdentity.html

Example

Verify a domain.

{ok, [{verification_token, "QTKknzFg2J4ygwa+XvHAxUl1hyHoY0gVfZdfjIedHZ0="}] = erlcloud_ses:verify_domain_identity(<<"example.com">>).

verify_email_identity/1

verify_email_identity(EmailAddress) -> any()

verify_email_identity/2

verify_email_identity(EmailAddress::email(), Config::aws_config()) -> verify_email_identity_result()

SES API: http://docs.aws.amazon.com/ses/2010-12-01/APIReference/API_VerifyEmailIdentity.html

Example

Verify an email address.

ok = erlcloud_ses:verify_email_identity(<<"user@example.com">>).


Generated by EDoc