SESV2 / Client / send_bulk_email

send_bulk_email#

SESV2.Client.send_bulk_email(**kwargs)#

Composes an email message to multiple destinations.

See also: AWS API Documentation

Request Syntax

response = client.send_bulk_email(
    FromEmailAddress='string',
    FromEmailAddressIdentityArn='string',
    ReplyToAddresses=[
        'string',
    ],
    FeedbackForwardingEmailAddress='string',
    FeedbackForwardingEmailAddressIdentityArn='string',
    DefaultEmailTags=[
        {
            'Name': 'string',
            'Value': 'string'
        },
    ],
    DefaultContent={
        'Template': {
            'TemplateName': 'string',
            'TemplateArn': 'string',
            'TemplateContent': {
                'Subject': 'string',
                'Text': 'string',
                'Html': 'string'
            },
            'TemplateData': 'string',
            'Headers': [
                {
                    'Name': 'string',
                    'Value': 'string'
                },
            ]
        }
    },
    BulkEmailEntries=[
        {
            'Destination': {
                'ToAddresses': [
                    'string',
                ],
                'CcAddresses': [
                    'string',
                ],
                'BccAddresses': [
                    'string',
                ]
            },
            'ReplacementTags': [
                {
                    'Name': 'string',
                    'Value': 'string'
                },
            ],
            'ReplacementEmailContent': {
                'ReplacementTemplate': {
                    'ReplacementTemplateData': 'string'
                }
            },
            'ReplacementHeaders': [
                {
                    'Name': 'string',
                    'Value': 'string'
                },
            ]
        },
    ],
    ConfigurationSetName='string',
    EndpointId='string'
)
Parameters:
  • FromEmailAddress (string) – The email address to use as the “From” address for the email. The address that you specify has to be verified.

  • FromEmailAddressIdentityArn (string) –

    This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the FromEmailAddress parameter.

    For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use sender@example.com, then you would specify the FromEmailAddressIdentityArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the FromEmailAddress to be sender@example.com.

    For more information about sending authorization, see the Amazon SES Developer Guide.

  • ReplyToAddresses (list) –

    The “Reply-to” email addresses for the message. When the recipient replies to the message, each Reply-to address receives the reply.

    • (string) –

  • FeedbackForwardingEmailAddress (string) – The address that you want bounce and complaint notifications to be sent to.

  • FeedbackForwardingEmailAddressIdentityArn (string) –

    This parameter is used only for sending authorization. It is the ARN of the identity that is associated with the sending authorization policy that permits you to use the email address specified in the FeedbackForwardingEmailAddress parameter.

    For example, if the owner of example.com (which has ARN arn:aws:ses:us-east-1:123456789012:identity/example.com) attaches a policy to it that authorizes you to use feedback@example.com, then you would specify the FeedbackForwardingEmailAddressIdentityArn to be arn:aws:ses:us-east-1:123456789012:identity/example.com, and the FeedbackForwardingEmailAddress to be feedback@example.com.

    For more information about sending authorization, see the Amazon SES Developer Guide.

  • DefaultEmailTags (list) –

    A list of tags, in the form of name/value pairs, to apply to an email that you send using the SendEmail operation. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.

    • (dict) –

      Contains the name and value of a tag that you apply to an email. You can use message tags when you publish email sending events.

      • Name (string) – [REQUIRED]

        The name of the message tag. The message tag name has to meet the following criteria:

        • It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-).

        • It can contain no more than 256 characters.

      • Value (string) – [REQUIRED]

        The value of the message tag. The message tag value has to meet the following criteria:

        • It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-).

        • It can contain no more than 256 characters.

  • DefaultContent (dict) –

    [REQUIRED]

    An object that contains the body of the message. You can specify a template message.

    • Template (dict) –

      The template to use for the bulk email message.

      • TemplateName (string) –

        The name of the template. You will refer to this name when you send email using the SendTemplatedEmail or SendBulkTemplatedEmail operations.

      • TemplateArn (string) –

        The Amazon Resource Name (ARN) of the template.

      • TemplateContent (dict) –

        The content of the template.

        Note

        Amazon SES supports only simple substitions when you send email using the SendEmail or SendBulkEmail operations and you provide the full template content in the request.

        • Subject (string) –

          The subject line of the email.

        • Text (string) –

          The email body that will be visible to recipients whose email clients do not display HTML.

        • Html (string) –

          The HTML body of the email.

      • TemplateData (string) –

        An object that defines the values to use for message variables in the template. This object is a set of key-value pairs. Each key defines a message variable in the template. The corresponding value defines the value to use for that variable.

      • Headers (list) –

        The list of message headers that will be added to the email message.

        • (dict) –

          Contains the name and value of a message header that you add to an email.

          • Name (string) – [REQUIRED]

            The name of the message header. The message header name has to meet the following criteria:

            • Can contain any printable ASCII character (33 - 126) except for colon (:).

            • Can contain no more than 126 characters.

          • Value (string) – [REQUIRED]

            The value of the message header. The message header value has to meet the following criteria:

            • Can contain any printable ASCII character.

            • Can contain no more than 870 characters.

  • BulkEmailEntries (list) –

    [REQUIRED]

    The list of bulk email entry objects.

    • (dict) –

      • Destination (dict) – [REQUIRED]

        Represents the destination of the message, consisting of To:, CC:, and BCC: fields.

        Note

        Amazon SES does not support the SMTPUTF8 extension, as described in RFC6531. For this reason, the local part of a destination email address (the part of the email address that precedes the @ sign) may only contain 7-bit ASCII characters. If the domain part of an address (the part after the @ sign) contains non-ASCII characters, they must be encoded using Punycode, as described in RFC3492.

        • ToAddresses (list) –

          An array that contains the email addresses of the “To” recipients for the email.

          • (string) –

        • CcAddresses (list) –

          An array that contains the email addresses of the “CC” (carbon copy) recipients for the email.

          • (string) –

        • BccAddresses (list) –

          An array that contains the email addresses of the “BCC” (blind carbon copy) recipients for the email.

          • (string) –

      • ReplacementTags (list) –

        A list of tags, in the form of name/value pairs, to apply to an email that you send using the SendBulkTemplatedEmail operation. Tags correspond to characteristics of the email that you define, so that you can publish email sending events.

        • (dict) –

          Contains the name and value of a tag that you apply to an email. You can use message tags when you publish email sending events.

          • Name (string) – [REQUIRED]

            The name of the message tag. The message tag name has to meet the following criteria:

            • It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-).

            • It can contain no more than 256 characters.

          • Value (string) – [REQUIRED]

            The value of the message tag. The message tag value has to meet the following criteria:

            • It can only contain ASCII letters (a–z, A–Z), numbers (0–9), underscores (_), or dashes (-).

            • It can contain no more than 256 characters.

      • ReplacementEmailContent (dict) –

        The ReplacementEmailContent associated with a BulkEmailEntry.

        • ReplacementTemplate (dict) –

          The ReplacementTemplate associated with ReplacementEmailContent.

          • ReplacementTemplateData (string) –

            A list of replacement values to apply to the template. This parameter is a JSON object, typically consisting of key-value pairs in which the keys correspond to replacement tags in the email template.

      • ReplacementHeaders (list) –

        The list of message headers associated with the BulkEmailEntry data type.

        • Headers Not Present in BulkEmailEntry: If a header is specified in Template but not in BulkEmailEntry, the header from Template will be added to the outgoing email.

        • Headers Present in BulkEmailEntry: If a header is specified in BulkEmailEntry, it takes precedence over any header of the same name specified in Template:

          • If the header is also defined within Template, the value from BulkEmailEntry will replace the header’s value in the email.

          • If the header is not defined within Template, it will simply be added to the email as specified in BulkEmailEntry.

        • (dict) –

          Contains the name and value of a message header that you add to an email.

          • Name (string) – [REQUIRED]

            The name of the message header. The message header name has to meet the following criteria:

            • Can contain any printable ASCII character (33 - 126) except for colon (:).

            • Can contain no more than 126 characters.

          • Value (string) – [REQUIRED]

            The value of the message header. The message header value has to meet the following criteria:

            • Can contain any printable ASCII character.

            • Can contain no more than 870 characters.

  • ConfigurationSetName (string) – The name of the configuration set to use when sending the email.

  • EndpointId (string) – The ID of the multi-region endpoint (global-endpoint).

Return type:

dict

Returns:

Response Syntax

{
    'BulkEmailEntryResults': [
        {
            'Status': 'SUCCESS'|'MESSAGE_REJECTED'|'MAIL_FROM_DOMAIN_NOT_VERIFIED'|'CONFIGURATION_SET_NOT_FOUND'|'TEMPLATE_NOT_FOUND'|'ACCOUNT_SUSPENDED'|'ACCOUNT_THROTTLED'|'ACCOUNT_DAILY_QUOTA_EXCEEDED'|'INVALID_SENDING_POOL_NAME'|'ACCOUNT_SENDING_PAUSED'|'CONFIGURATION_SET_SENDING_PAUSED'|'INVALID_PARAMETER'|'TRANSIENT_FAILURE'|'FAILED',
            'Error': 'string',
            'MessageId': 'string'
        },
    ]
}

Response Structure

  • (dict) –

    The following data is returned in JSON format by the service.

    • BulkEmailEntryResults (list) –

      One object per intended recipient. Check each response object and retry any messages with a failure status.

      • (dict) –

        The result of the SendBulkEmail operation of each specified BulkEmailEntry.

        • Status (string) –

          The status of a message sent using the SendBulkTemplatedEmail operation.

          Possible values for this parameter include:

          • SUCCESS: Amazon SES accepted the message, and will attempt to deliver it to the recipients.

          • MESSAGE_REJECTED: The message was rejected because it contained a virus.

          • MAIL_FROM_DOMAIN_NOT_VERIFIED: The sender’s email address or domain was not verified.

          • CONFIGURATION_SET_DOES_NOT_EXIST: The configuration set you specified does not exist.

          • TEMPLATE_DOES_NOT_EXIST: The template you specified does not exist.

          • ACCOUNT_SUSPENDED: Your account has been shut down because of issues related to your email sending practices.

          • ACCOUNT_THROTTLED: The number of emails you can send has been reduced because your account has exceeded its allocated sending limit.

          • ACCOUNT_DAILY_QUOTA_EXCEEDED: You have reached or exceeded the maximum number of emails you can send from your account in a 24-hour period.

          • INVALID_SENDING_POOL_NAME: The configuration set you specified refers to an IP pool that does not exist.

          • ACCOUNT_SENDING_PAUSED: Email sending for the Amazon SES account was disabled using the UpdateAccountSendingEnabled operation.

          • CONFIGURATION_SET_SENDING_PAUSED: Email sending for this configuration set was disabled using the UpdateConfigurationSetSendingEnabled operation.

          • INVALID_PARAMETER_VALUE: One or more of the parameters you specified when calling this operation was invalid. See the error message for additional information.

          • TRANSIENT_FAILURE: Amazon SES was unable to process your request because of a temporary issue.

          • FAILED: Amazon SES was unable to process your request. See the error message for additional information.

        • Error (string) –

          A description of an error that prevented a message being sent using the SendBulkTemplatedEmail operation.

        • MessageId (string) –

          The unique message identifier returned from the SendBulkTemplatedEmail operation.

Exceptions

  • SESV2.Client.exceptions.TooManyRequestsException

  • SESV2.Client.exceptions.LimitExceededException

  • SESV2.Client.exceptions.AccountSuspendedException

  • SESV2.Client.exceptions.SendingPausedException

  • SESV2.Client.exceptions.MessageRejected

  • SESV2.Client.exceptions.MailFromDomainNotVerifiedException

  • SESV2.Client.exceptions.NotFoundException

  • SESV2.Client.exceptions.BadRequestException