€cdocutils.nodes document q)q}q(U nametypesq}q(Xlisting verified addressesqNXsending an emailqNXsesqˆXcreating a connectionq NX verifying a sender email addressq NXchecking your send quotaq NXsimple email service tutorialq NXsimple email service (ses)q ˆXnotes on sendingqNXdeleting a verified addressqNXchecking your send statisticsqNuUsubstitution_defsq}qUparse_messagesq]qUcurrent_sourceqNU decorationqNUautofootnote_startqKUnameidsq}q(hUlisting-verified-addressesqhUsending-an-emailqhUsesqh Ucreating-a-connectionqh U verifying-a-sender-email-addressqh Uchecking-your-send-quotaqh Usimple-email-service-tutorialq h Usimple-email-service-sesq!hUnotes-on-sendingq"hUdeleting-a-verified-addressq#hUchecking-your-send-statisticsq$uUchildrenq%]q&(cdocutils.nodes comment q')q(}q)(U rawsourceq*Xses_tut:Uparentq+hUsourceq,X=/Users/kyleknap/Documents/GitHub/boto/docs/source/ses_tut.rstq-Utagnameq.Ucommentq/U attributesq0}q1(U xml:spaceq2Upreserveq3Uidsq4]Ubackrefsq5]Udupnamesq6]Uclassesq7]Unamesq8]uUlineq9KUdocumentq:hh%]q;cdocutils.nodes Text q}q?(h*Uh+h(ubaubcdocutils.nodes section q@)qA}qB(h*Uh+hh,h-h.UsectionqCh0}qD(h6]h7]h5]h4]qEh ah8]qFh auh9Kh:hh%]qG(cdocutils.nodes title qH)qI}qJ(h*XSimple Email Service TutorialqKh+hAh,h-h.UtitleqLh0}qM(h6]h7]h5]h4]h8]uh9Kh:hh%]qNh`_. This tutorial assumes that you have boto already downloaded and installed.h+hAh,h-h.U paragraphqUh0}qV(h6]h7]h5]h4]h8]uh9Kh:hh%]qW(h`_h0}q^(UnameXSimple Email Service (SES)Urefuriq_Xsesq`h4]h5]h6]h7]h8]uh+hSh%]qahU referencedqiKh+hSh.Utargetqjh0}qk(Urefurih`h4]qlh!ah5]h6]h7]h8]qmh auh%]ubh>> import boto.ses >>> conn = boto.ses.connect_to_region( 'us-west-2', aws_access_key_id='', aws_secret_access_key='') >>> conn SESConnection:email.us-west-2.amazonaws.comh+hvh,h-h.U literal_blockqŽh0}q(h2h3h4]h5]h6]h7]h8]uh9Kh:hh%]qh>> import boto.ses >>> conn = boto.ses.connect_to_region( 'us-west-2', aws_access_key_id='', aws_secret_access_key='') >>> conn SESConnection:email.us-west-2.amazonaws.comq‘…q’}q“(h*Uh+hŒubaubhR)q”}q•(h*XÖ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`.h+hvh,h-h.hUh0}q–(h6]h7]h5]h4]h8]uh9Kh:hh%]q—(h>> conn.verify_email_address('some@address.com') { 'VerifyEmailAddressResponse': { 'ResponseMetadata': { 'RequestId': '4a974fd5-56c2-11e1-ad4c-c1f08c91d554' } } }h+h÷h,h-h.hŽh0}r(h2h3h4]h5]h6]h7]h8]uh9K1h:hh%]rh>> conn.verify_email_address('some@address.com') { 'VerifyEmailAddressResponse': { 'ResponseMetadata': { 'RequestId': '4a974fd5-56c2-11e1-ad4c-c1f08c91d554' } } }r…r}r(h*Uh+j ubaubhR)r}r(h*XŠ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.rh+h÷h,h-h.hUh0}r(h6]h7]h5]h4]h8]uh9K:h:hh%]rhh:hh%]r (hH)r!}r"(h*XListing Verified Addressesr#h+jh,h-h.hLh0}r$(h6]h7]h5]h4]h8]uh9K>h:hh%]r%h`::h+jh,h-h.hUh0}r+(h6]h7]h5]h4]h8]uh9K@h:hh%]r,(h`r2h+j)h,h-h.hŸh0}r3(UreftypeXmethh¢‰h£X?boto.ses.connection.SESConnection.list_verified_email_addressesU refdomainXpyr4h4]h5]U refexplicitˆh6]h7]h8]h¤h¥hÀNhÁNuh9K@h%]r5h§)r6}r7(h*j2h0}r8(h6]h7]r9(h¬j4Xpy-methr:eh5]h4]h8]uh+j0h%]r;h(h*Uh+j6ubah.h±ubaubh>> conn.list_verified_email_addresses() { 'ListVerifiedEmailAddressesResponse': { 'ListVerifiedEmailAddressesResult': { 'VerifiedEmailAddresses': [ 'some@address.com', 'another@address.com' ] }, 'ResponseMetadata': { 'RequestId': '2ab45c18-56c3-11e1-be66-ffd2a4549d70' } } }h+jh,h-h.hŽh0}rC(h2h3h4]h5]h6]h7]h8]uh9KDh:hh%]rDh>> conn.list_verified_email_addresses() { 'ListVerifiedEmailAddressesResponse': { 'ListVerifiedEmailAddressesResult': { 'VerifiedEmailAddresses': [ 'some@address.com', 'another@address.com' ] }, 'ResponseMetadata': { 'RequestId': '2ab45c18-56c3-11e1-be66-ffd2a4549d70' } } }rE…rF}rG(h*Uh+jAubaubeubh@)rH}rI(h*Uh+hAh,h-h.hCh0}rJ(h6]h7]h5]h4]rKh#ah8]rLhauh9KTh:hh%]rM(hH)rN}rO(h*XDeleting a Verified AddressrPh+jHh,h-h.hLh0}rQ(h6]h7]h5]h4]h8]uh9KTh:hh%]rRh`::h+jHh,h-h.hUh0}rX(h6]h7]h5]h4]h8]uh9KVh:hh%]rY(h`r_h+jVh,h-h.hŸh0}r`(UreftypeXmethh¢‰h£X?boto.ses.connection.SESConnection.delete_verified_email_addressU refdomainXpyrah4]h5]U refexplicitˆh6]h7]h8]h¤h¥hÀNhÁNuh9KVh%]rbh§)rc}rd(h*j_h0}re(h6]h7]rf(h¬jaXpy-methrgeh5]h4]h8]uh+j]h%]rhh>> conn.delete_verified_email_address('another@address.com')h+jHh,h-h.hŽh0}rp(h2h3h4]h5]h6]h7]h8]uh9KZh:hh%]rqh>> conn.delete_verified_email_address('another@address.com')rr…rs}rt(h*Uh+jnubaubeubh@)ru}rv(h*Uh+hAh,h-h.hCh0}rw(h6]h7]h5]h4]rxhah8]ryhauh9K]h:hh%]rz(hH)r{}r|(h*XSending an Emailr}h+juh,h-h.hLh0}r~(h6]h7]h5]h4]h8]uh9K]h:hh%]rh`::h+juh,h-h.hUh0}r…(h6]h7]h5]h4]h8]uh9K_h:hh%]r†(h`rŒh+jƒh,h-h.hŸh0}r(UreftypeXmethh¢‰h£X,boto.ses.connection.SESConnection.send_emailU refdomainXpyrŽh4]h5]U refexplicitˆh6]h7]h8]h¤h¥hÀNhÁNuh9K_h%]rh§)r}r‘(h*jŒh0}r’(h6]h7]r“(h¬jŽXpy-methr”eh5]h4]h8]uh+jŠh%]r•h>> 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' } } }h+juh,h-h.hŽh0}r(h2h3h4]h5]h6]h7]h8]uh9Kbh:hh%]ržh>> 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' } } }rŸ…r }r¡(h*Uh+j›ubaubhR)r¢}r£(h*XÅIf you're wanting to send a multipart MIME email, see the reference for :py:meth:`send_raw_email `, which is a bit more of a low-level alternative.h+juh,h-h.hUh0}r¤(h6]h7]h5]h4]h8]uh9Krh:hh%]r¥(h`r«h+j¢h,h-h.hŸh0}r¬(UreftypeXmethh¢‰h£X0boto.ses.connection.SESConnection.send_raw_emailU refdomainXpyr­h4]h5]U refexplicitˆh6]h7]h8]h¤h¥hÀNhÁNuh9Krh%]r®h§)r¯}r°(h*j«h0}r±(h6]h7]r²(h¬j­Xpy-methr³eh5]h4]h8]uh+j©h%]r´h`::h+j»h,h-h.hUh0}rË(h6]h7]h5]h4]h8]uh9Kyh:hh%]rÌ(h`rÒh+jÉh,h-h.hŸh0}rÓ(UreftypeXmethh¢‰h£X0boto.ses.connection.SESConnection.get_send_quotaU refdomainXpyrÔh4]h5]U refexplicitˆh6]h7]h8]h¤h¥hÀNhÁNuh9Kyh%]rÕh§)rÖ}r×(h*jÒh0}rØ(h6]h7]rÙ(h¬jÔXpy-methrÚeh5]h4]h8]uh+jÐh%]rÛh>> conn.get_send_quota() { 'GetSendQuotaResponse': { 'GetSendQuotaResult': { 'Max24HourSend': '100000.0', 'SentLast24Hours': '181.0', 'MaxSendRate': '28.0' }, 'ResponseMetadata': { 'RequestId': u'8a629245-56c4-11e1-9c53-9d5f4d2cc8d3' } } }h+j»h,h-h.hŽh0}rã(h2h3h4]h5]h6]h7]h8]uh9Kh:hh%]räh>> conn.get_send_quota() { 'GetSendQuotaResponse': { 'GetSendQuotaResult': { 'Max24HourSend': '100000.0', 'SentLast24Hours': '181.0', 'MaxSendRate': '28.0' }, 'ResponseMetadata': { 'RequestId': u'8a629245-56c4-11e1-9c53-9d5f4d2cc8d3' } } }rå…ræ}rç(h*Uh+jáubaubeubh@)rè}ré(h*Uh+hAh,h-h.hCh0}rê(h6]h7]h5]h4]rëh$ah8]rìhauh9KŽh:hh%]rí(hH)rî}rï(h*XChecking your Send Statisticsrðh+jèh,h-h.hLh0}rñ(h6]h7]h5]h4]h8]uh9KŽh:hh%]ròh`. Please be warned that the output is extremely verbose, to the point where we'll just show a short excerpt here::h+jèh,h-h.hUh0}rø(h6]h7]h5]h4]h8]uh9Kh:hh%]rù(h`rÿh+jöh,h-h.hŸh0}r(UreftypeXmethh¢‰h£X5boto.ses.connection.SESConnection.get_send_statisticsU refdomainXpyrh4]h5]U refexplicitˆh6]h7]h8]h¤h¥hÀNhÁNuh9Kh%]rh§)r}r(h*jÿh0}r(h6]h7]r(h¬jXpy-methreh5]h4]h8]uh+jýh%]rh>> 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' } ] } } }h+jèh,h-h.hŽh0}r(h2h3h4]h5]h6]h7]h8]uh9K–h:hh%]rh>> 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' } ] } } }r…r}r(h*Uh+jubaubeubeubeh*UU transformerrNU footnote_refsr}rUrefnamesr}rUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]r U citationsr!]r"h:hU current_liner#NUtransform_messagesr$]r%cdocutils.nodes system_message r&)r'}r((h*Uh0}r)(h6]UlevelKh4]h5]Usourceh-h7]h8]UlineK UtypeUINFOr*uh%]r+hR)r,}r-(h*Uh0}r.(h6]h7]h5]h4]h8]uh+j'h%]r/h}r?(Ufootnote_backlinksr@KUrecord_dependenciesrANU rfc_base_urlrBUhttp://tools.ietf.org/html/rCU tracebackrDˆUpep_referencesrENUstrip_commentsrFNU toc_backlinksrGUentryrHU language_coderIUenrJU datestamprKNU report_levelrLKU _destinationrMNU halt_levelrNKU strip_classesrONhLNUerror_encoding_error_handlerrPUbackslashreplacerQUdebugrRNUembed_stylesheetrS‰Uoutput_encoding_error_handlerrTUstrictrUU sectnum_xformrVKUdump_transformsrWNU docinfo_xformrXKUwarning_streamrYNUpep_file_url_templaterZUpep-%04dr[Uexit_status_levelr\KUconfigr]NUstrict_visitorr^NUcloak_email_addressesr_ˆUtrim_footnote_reference_spacer`‰UenvraNUdump_pseudo_xmlrbNUexpose_internalsrcNUsectsubtitle_xformrd‰U source_linkreNUrfc_referencesrfNUoutput_encodingrgUutf-8rhU source_urlriNUinput_encodingrjU utf-8-sigrkU_disable_configrlNU id_prefixrmUU tab_widthrnKUerror_encodingroUUTF-8rpU_sourcerqh-Ugettext_compactrrˆU generatorrsNUdump_internalsrtNU smart_quotesru‰U pep_base_urlrvUhttp://www.python.org/dev/peps/rwUsyntax_highlightrxUlongryUinput_encoding_error_handlerrzjUUauto_id_prefixr{Uidr|Udoctitle_xformr}‰Ustrip_elements_with_classesr~NU _config_filesr]Ufile_insertion_enabledr€ˆU raw_enabledrKU dump_settingsr‚NubUsymbol_footnote_startrƒKUidsr„}r…(hhqh!hghjuh#jHhj»h hAh$jèhjh"háhhvhh÷uUsubstitution_namesr†}r‡h.h:h0}rˆ(h6]h4]h5]Usourceh-h7]h8]uU footnotesr‰]rŠUrefidsr‹}rŒub.