| Index: third_party/gsutil/boto/docs/source/ses_tut.rst
|
| diff --git a/third_party/gsutil/boto/docs/source/ses_tut.rst b/third_party/gsutil/boto/docs/source/ses_tut.rst
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c71e8868a70de5f5393d8446d6f97399b0334ca0
|
| --- /dev/null
|
| +++ b/third_party/gsutil/boto/docs/source/ses_tut.rst
|
| @@ -0,0 +1,171 @@
|
| +.. ses_tut:
|
| +
|
| +=============================
|
| +Simple Email Service Tutorial
|
| +=============================
|
| +
|
| +This tutorial focuses on the boto interface to AWS' `Simple Email Service (SES) <ses>`_.
|
| +This tutorial assumes that you have boto already downloaded and installed.
|
| +
|
| +.. _SES: http://aws.amazon.com/ses/
|
| +
|
| +Creating a Connection
|
| +---------------------
|
| +
|
| +The first step in accessing SES is to create a connection to the service.
|
| +To do so, the most straight forward way is the following::
|
| +
|
| + >>> import boto
|
| + >>> conn = boto.connect_ses(
|
| + aws_access_key_id='<YOUR_AWS_KEY_ID>',
|
| + aws_secret_access_key='<YOUR_AWS_SECRET_KEY>')
|
| + >>> conn
|
| + SESConnection:email.us-east-1.amazonaws.com
|
| +
|
| +Bear in mind that if you have your credentials in boto config in your home
|
| +directory, the two keyword arguments in the call above are not needed. More
|
| +details on configuration can be fond in :doc:`boto_config_tut`.
|
| +
|
| +The :py:func:`boto.connect_ses` functions returns a
|
| +:py:class:`boto.ses.connection.SESConnection` instance, which is a the boto API
|
| +for working with SES.
|
| +
|
| +Notes on Sending
|
| +----------------
|
| +
|
| +It is important to keep in mind that while emails appear to come "from" the
|
| +address that you specify via Reply-To, the sending is done through Amazon.
|
| +Some clients do pick up on this disparity, and leave a note on emails.
|
| +
|
| +Verifying a Sender Email Address
|
| +--------------------------------
|
| +
|
| +Before you can send email "from" an address, you must prove that you have
|
| +access to the account. When you send a validation request, an email is sent
|
| +to the address with a link in it. Clicking on the link validates the address
|
| +and adds it to your SES account. Here's how to send the validation email::
|
| +
|
| + >>> conn.verify_email_address('some@address.com')
|
| + {
|
| + 'VerifyEmailAddressResponse': {
|
| + 'ResponseMetadata': {
|
| + 'RequestId': '4a974fd5-56c2-11e1-ad4c-c1f08c91d554'
|
| + }
|
| + }
|
| + }
|
| +
|
| +After a short amount of time, you'll find an email with the validation
|
| +link inside. Click it, and this address may be used to send emails.
|
| +
|
| +Listing Verified Addresses
|
| +--------------------------
|
| +
|
| +If you'd like to list the addresses that are currently verified on your
|
| +SES account, use
|
| +:py:meth:`list_verified_email_addresses <boto.ses.connection.SESConnection.list_verified_email_addresses>`::
|
| +
|
| + >>> conn.list_verified_email_addresses()
|
| + {
|
| + 'ListVerifiedEmailAddressesResponse': {
|
| + 'ListVerifiedEmailAddressesResult': {
|
| + 'VerifiedEmailAddresses': [
|
| + 'some@address.com',
|
| + 'another@address.com'
|
| + ]
|
| + },
|
| + 'ResponseMetadata': {
|
| + 'RequestId': '2ab45c18-56c3-11e1-be66-ffd2a4549d70'
|
| + }
|
| + }
|
| + }
|
| +
|
| +Deleting a Verified Address
|
| +---------------------------
|
| +
|
| +In the event that you'd like to remove an email address from your account,
|
| +use
|
| +:py:meth:`delete_verified_email_address <boto.ses.connection.SESConnection.delete_verified_email_address>`::
|
| +
|
| + >>> conn.delete_verified_email_address('another@address.com')
|
| +
|
| +Sending an Email
|
| +----------------
|
| +
|
| +Sending an email is done via
|
| +:py:meth:`send_email <boto.ses.connection.SESConnection.send_email>`::
|
| +
|
| + >>> conn.send_email(
|
| + 'some@address.com',
|
| + 'Your subject',
|
| + 'Body here',
|
| + ['recipient-address-1@gmail.com'])
|
| + {
|
| + 'SendEmailResponse': {
|
| + 'ResponseMetadata': {
|
| + 'RequestId': '4743c2b7-56c3-11e1-bccd-c99bd68002fd'
|
| + },
|
| + 'SendEmailResult': {
|
| + 'MessageId': '000001357a177192-7b894025-147a-4705-8455-7c880b0c8270-000000'
|
| + }
|
| + }
|
| + }
|
| +
|
| +If you're wanting to send a multipart MIME email, see the reference for
|
| +:py:meth:`send_raw_email <boto.ses.connection.SESConnection.send_raw_email>`,
|
| +which is a bit more of a low-level alternative.
|
| +
|
| +Checking your Send Quota
|
| +------------------------
|
| +
|
| +Staying within your quota is critical, since the upper limit is a hard cap.
|
| +Once you have hit your quota, no further email may be sent until enough
|
| +time elapses to where your 24 hour email count (rolling continuously) is
|
| +within acceptable ranges. Use
|
| +:py:meth:`get_send_quota <boto.ses.connection.SESConnection.get_send_quota>`::
|
| +
|
| + >>> conn.get_send_quota()
|
| + {
|
| + 'GetSendQuotaResponse': {
|
| + 'GetSendQuotaResult': {
|
| + 'Max24HourSend': '100000.0',
|
| + 'SentLast24Hours': '181.0',
|
| + 'MaxSendRate': '28.0'
|
| + },
|
| + 'ResponseMetadata': {
|
| + 'RequestId': u'8a629245-56c4-11e1-9c53-9d5f4d2cc8d3'
|
| + }
|
| + }
|
| + }
|
| +
|
| +Checking your Send Statistics
|
| +-----------------------------
|
| +
|
| +In order to fight spammers and ensure quality mail is being sent from SES,
|
| +Amazon tracks bounces, rejections, and complaints. This is done via
|
| +:py:meth:`get_send_statistics <boto.ses.connection.SESConnection.get_send_statistics>`.
|
| +Please be warned that the output is extremely verbose, to the point
|
| +where we'll just show a short excerpt here::
|
| +
|
| + >>> conn.get_send_statistics()
|
| + {
|
| + 'GetSendStatisticsResponse': {
|
| + 'GetSendStatisticsResult': {
|
| + 'SendDataPoints': [
|
| + {
|
| + 'Complaints': '0',
|
| + 'Timestamp': '2012-02-13T05:02:00Z',
|
| + 'DeliveryAttempts': '8',
|
| + 'Bounces': '0',
|
| + 'Rejects': '0'
|
| + },
|
| + {
|
| + 'Complaints': '0',
|
| + 'Timestamp': '2012-02-13T05:17:00Z',
|
| + 'DeliveryAttempts': '12',
|
| + 'Bounces': '0',
|
| + 'Rejects': '0'
|
| + }
|
| + ]
|
| + }
|
| + }
|
| + }
|
|
|