# AWS setup Source: https://docs.getsendbase.com/aws-setup Learn how to create an IAM role and configure SES This guide shows you how to create an IAM role and configure SES. **Prerequisites**: You need an AWS account to complete this setup. If you don't have one, create it by following the [documentation](/best-practice/aws/create-aws-account). ## Create an IAM Role Use our CloudFormation template to automatically create an IAM role with all required permissions. 1. Click this link to launch the CloudFormation stack: [Create IAM Role Stack](https://console.aws.amazon.com/cloudformation/home#/stacks/create/review?stackName=sendbase-iam-role\&templateURL=https://sendbase.s3.amazonaws.com/aws/main.yaml). 2. Click **Create stack**. 3. Wait for the stack creation to complete. (status will show `CREATE_COMPLETE`) 4. Go to the **Outputs** tab to find your IAM Role ARN. **IAM role is the safest way to grant access**. The CloudFormation template creates a role that grants minimal permissions corresponding to the application's use, only works with Sendbase, and cannot be used elsewhere. ```json IAM Policy expandable theme={null} { "Version": "2012-10-17", "Statement": [ { "Sid": "SESGeneralAccess", "Effect": "Allow", "Action": [ "ses:GetImportJob", "ses:CreateImportJob", "ses:GetAccount", "ses:TagResource", "ses:CreateEmailIdentity", "ses:GetEmailIdentity", "ses:PutEmailIdentityMailFromAttributes", "ses:DeleteEmailIdentity", "ses:SendEmail", "ses:SendTemplatedEmail", "ses:SendBulkEmail", "ses:SendBulkTemplatedEmail" ], "Resource": "*" }, { "Sid": "SESContactListAccess", "Effect": "Allow", "Action": [ "ses:GetContactList", "ses:CreateContactList", "ses:UpdateContactList", "ses:DeleteContactList", "ses:ListContacts", "ses:GetContact", "ses:CreateContact", "ses:UpdateContact", "ses:DeleteContact" ], "Resource": "arn:aws:ses:*:*:contact-list/sendbase*" }, { "Sid": "SESConfigurationSetAccess", "Effect": "Allow", "Action": [ "ses:GetConfigurationSet", "ses:CreateConfigurationSet", "ses:DeleteConfigurationSet", "ses:GetConfigurationSetEventDestinations", "ses:CreateConfigurationSetEventDestination", "ses:UpdateConfigurationSetEventDestination", "ses:DeleteConfigurationSetEventDestination" ], "Resource": "arn:aws:ses:*:*:configuration-set/sendbase*" }, { "Sid": "SESEmailTemplateAccess", "Effect": "Allow", "Action": [ "ses:GetEmailTemplate", "ses:CreateEmailTemplate", "ses:UpdateEmailTemplate", "ses:DeleteEmailTemplate" ], "Resource": "arn:aws:ses:*:*:template/sendbase*" }, { "Sid": "S3Access", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:CreateBucket", "s3:DeleteBucket", "s3:PutBucketPolicy", "s3:GetBucketPublicAccessBlock", "s3:PutBucketPublicAccessBlock", "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:PutObjectAcl", "s3:PutBucketTagging" ], "Resource": ["arn:aws:s3:::sendbase*", "arn:aws:s3:::sendbase*/*"] }, { "Sid": "CloudWatchMetricsAccess", "Effect": "Allow", "Action": ["cloudwatch:GetMetricData"], "Resource": "*" }, { "Sid": "SNSTopicAccess", "Effect": "Allow", "Action": [ "sns:GetTopicAttributes", "sns:CreateTopic", "sns:DeleteTopic", "sns:TagResource" ], "Resource": "arn:aws:sns:*:*:sendbase*" }, { "Sid": "SNSSubscriptionAccess", "Effect": "Allow", "Action": [ "sns:ListSubscriptionsByTopic", "sns:Subscribe", "sns:Unsubscribe" ], "Resource": "arn:aws:sns:*:*:sendbase*" } ] } ``` ## Move SES out of Sandbox SES starts in sandbox mode, limiting email sending to verified addresses only. To send emails to any address, you need production access. ### Request Production Access 1. Open the [Amazon SES console](https://console.aws.amazon.com/ses/). 2. Ensure you're in your preferred region. 3. In the navigation panel, choose **Account dashboard**. 4. In the warning box at the top of the console, choose **View Get set up page**, then **Request production access**. 5. Fill out the production access request and choose **Submit request**. Once you submit your account details for review, you cannot edit them until the review is complete. The AWS Support team provides an initial response to your request within 24 hours. ### Generate Your Use Case Description To help you craft an use case description, we've created a prompt that transforms your basic business information into a professional AWS SES production access request. **Prerequisites:** * **Sending pattern**: Use the sandbox environment for a while to establish a good sending pattern * **Email authentication**: Set up email authentication (DKIM, SPF, and DMARC records) for your domain * **Professional website**: Set up a professional website on your domain with a privacy policy **Generate a professional production access request with your preferred AI assistant:** 1. Copy the prompt below and paste it into your preferred AI assistant (ChatGPT, Claude, etc.). 2. Fill out the **Business Info** and **Email Program** sections with your information. The **Technical Setup** section is pre-filled according to what the system does. 3. Generate the detailed production access request and submit it. ```md expandable theme={null} # SES Use Case Description Generator You are an SES consultant who helps businesses get production access by writing compelling use case descriptions that meet AWS approval criteria ## Instructions Generate a detailed SES production access application based on the user's inputs. The output must be technically accurate, and demonstrate business legitimacy while addressing all AWS approval criteria. ## Required Input Format Ask the user to provide the following information in a simple form: Business Info: - Company/Organization name: - Describe what your business does: - Website URL: - Business type (e-commerce, SaaS, education, non-profit, etc.): Email Program: - Email list size (approximate): - How you collect email addresses (website signup, events, etc.): - Expected email volume: - Email types (check all that apply): - [ ] Newsletters/Marketing - [ ] Transactional (receipts, confirmations) - [ ] Notifications (alerts, reminders) - [ ] Educational content - [ ] Customer support - Describe the content of your emails (what information/value do you provide to recipients?): Technical Setup: - Do you have bounce/complaint handling? A. We have implemented automated bounce and complaint handling using AWS SES feedback notifications via SNS topics. Our system processes hard bounces and complaints in real-time, automatically updating the contact list to suppress future sends to those addresses. - How do you handle unsubscribes? A. Every email we send includes a clear, prominent unsubscribe link in the footer. We also implement List-Unsubscribe and List-Unsubscribe-Post headers to support one-click unsubscribe functionality. Unsubscribe requests are processed immediately and automatically. - How do you handle monitoring and reputation management? A. We continuously monitor bounce rates and complaint rates at both the account level and per-campaign level in real-time. We track delivery rates and engagement metrics. We regularly review our sending patterns to identify and address any issues promptly. ## Output Structure Transform the inputs into a professional application with these sections: ### 1. Business Overview - Brief description of company and services - State specific email communication needs ### 2. Email Program Details - Detail email list composition - Explain opt-in collection methods with emphasis on consent (ask if this is not provided or detailed) - Break down email types and describe the specific content/value provided to recipients - Justify sending volumes based on business needs ### 3. Technical Setup - Detail bounce and complaint handling systems (ask to set this up if it's not prepared) - Explain unsubscribe mechanisms (ask to set this up if it's not prepared) - Include monitoring and reputation management procedures (ask to set this up if it's not prepared) ## Tone and Style Guidelines - Concise and professional: Use clear, direct language without repetition - Technically accurate: Include specific AWS terminology and best practices - Conservative estimates: Always err on the side of lower volume projections - Evidence-based: Include specific numbers without excessive elaboration - No redundancy: Avoid repeating the same points in different sections ## Key Success Factors to Include Always incorporate these elements regardless of user input: 1. Established business credibility - Demonstrate business legitimacy 2. Opt-in collection methods - Emphasize consent and legal compliance 3. Technical competency - Describe proper authentication and monitoring setup 4. Automated bounce/complaint handling - Detail specific technical implementation 5. Multiple unsubscribe options - Show user-friendly opt-out processes 6. Monitoring and quality control - Demonstrate proactive reputation management ## Important Notes - Keep output under 4,000 characters - Be concise: Avoid repetitive explanations and unnecessary detail ## Sample Interaction **User Input:** - Company: "FitLife Supplements" - Website: "fitlifesupplements.com" - Business: "E-commerce health supplements" - Years: "3 years" - Location: "Austin, Texas" - Customers: "12,000" - List size: "8,000" - Collection: "Website purchases and newsletter signup" - Frequency: "2-3 times per week" - Types: "Newsletters, Order confirmations, Product alerts" - Monthly volume: "25,000" - SPF/DKIM: "No" - Bounce handling: "No" **Expected Output:** A professional application that transforms this basic info into a business case with technical implementation details, compliance procedures, and conservative volume requests. ``` You must review and revise the generated request thoroughly before submitting it. # Create AWS Account Source: https://docs.getsendbase.com/best-practice/aws/create-aws-account Learn how to create an AWS account ## Create an AWS account Follow these steps to create and activate your new AWS account. ### Initial setup 1. Visit the [AWS home page](https://aws.amazon.com/). 2. Choose **Create account**. 3. Enter your root user email address. 4. Create and confirm your password. ### Account information 1. Select **Personal or Business** for your account. 2. Enter your contact information. 3. Accept the [AWS Customer Agreement](https://aws.amazon.com/agreement/). If you select Business, you should avoid individual email address. For example, `it.admins@example.com` is better than `paulo.santos@example.com`. ### Payment setup 1. Add a [valid payment method](https://console.aws.amazon.com/billing/home#/paymentmethods). 2. Verify your billing address. ### Identity verification 1. Enter your phone number. 2. Receive and enter the verification code. 3. If there's a CAPTCHA, then enter the displayed code and choose **Submit**. 4. If you're an India-based account, [then complete additional verification if required](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/manage-account-payment-aispl.html). ### Choose a support plan 1. Select from [available AWS Support plans](https://aws.amazon.com/premiumsupport/features). 2. Choose **Complete sign up**. Account activation typically takes minutes, but it can take up to 24 hours. When account activation is complete, you receive a confirmation email. ## Best practice ### Enable MFA for root user After creating your AWS account, enable multi-factor authentication (MFA) for your root user to add an extra layer of security. Navigation bar 1. Sign in to the [AWS Management Console](https://console.aws.amazon.com/) using your root user credentials. 2. On the right side of the navigation bar, choose your account name and select **Security credentials**. 3. In the **Multi-Factor Authentication (MFA)** section, choose **Assign MFA device**. 4. Type a **Device name**, choose **Authenticator app**, and select **Next**. 5. Configure your authenticator app: * Open your virtual MFA app (such as Google Authenticator, Microsoft Authenticator, or Authy) * Select **Show QR code** and scan it with your app, or select **Show secret key** to manually enter it 6. Complete the registration: * Enter the six-digit code from your app in the **MFA code 1** box * Wait up to 30 seconds for a new code to generate * Enter the new code in the **MFA code 2** box * Choose **Add MFA** Securely backup the QR code or secret key. If you lose access to your MFA device and have no backup MFA devices, you may be locked out of your account and need to contact AWS Support. ## Additional resources * [How do I create and activate a new AWS account?](https://youtu.be/lIdh92JmWtg?si=SEzOchi-1lmPvshY) # Request Production Access Source: https://docs.getsendbase.com/best-practice/aws/production-access Learn how to request production access ## What is the sandbox mode? To prevent fraud and abuse, and to protect your reputation, AWS places all new SES accounts in the sandbox mode. In the sandbox mode, your SES account has restrictions: you can only send email to verified email addresses or domains, and you have limited sending quotas. ## Request Production Access To move out of sandbox mode, you need to [request production access](https://docs.aws.amazon.com/ses/latest/dg/request-production-access.html) through the AWS console. AWS is very strict about approving production access requests and does not provide feedback when requests are rejected. This makes it critical to submit a complete and well-prepared request. \*\*Here is how you can increase the probability of approval\*\*. ### Build Trust Building trust is the key to getting approval. AWS wants to see that you're running a legitimate business, not a potential spammer. These steps demonstrate your business legitimacy: * **Sending pattern**: Use the sandbox environment for a while to establish a good sending pattern * **Email authentication**: Set up email authentication (DKIM, SPF, and DMARC records) for your domain * **Professional website**: Set up a professional website on your domain with a privacy policy ### Request with Enhanced Details When you request production access through the AWS console, you'll need to provide detailed information about your business, email program, and technical setup. The more specific your answers, the higher your chances of approval. Below are the key questions you should prepare for. To help you craft an use case description, we've created a [prompt](/best-practice/aws/production-access#generate-your-use-case-description). This prompt generates an use case description containing answers to the following questions. #### Business Information * **Company/Organization Name**: Provide your official business name * **Business Description**: Explain what your business does and why you need to send emails * **Website URL**: Include your live website that has a privacy policy #### Email Program * **Email List Size**: Provide an approximate number of recipients. Be realistic and start with a reasonable volume * **List Collection Method**: Explain how you obtain email addresses (e.g., sign-ups on your website, customer accounts, opt-in forms). Emphasize that you never purchase or rent email lists * **Email Types**: Specify whether you'll send transactional emails (order confirmations, password resets), marketing emails (newsletters, promotions), or both. Describe the content and purpose of each type #### Technical Setup * **Bounce and Complaint Handling**: Describe your process for handling hard bounces and unsubscribing users who mark emails as spam. Mention if you're using SES feedback notifications (SNS topics or configuration sets) to track and process these events. * **Unsubscribe Process**: Explain how recipients can easily unsubscribe from your emails (e.g., unsubscribe link in every email, one-click unsubscribe headers). Include that you'll honor unsubscribe requests promptly * **Monitoring and Reputation**: Detail how you'll track your sending metrics (bounce rates, complaint rates, delivery rates) and maintain a good sender reputation. Mention any tools or dashboards you'll use to monitor email performance and take corrective action when needed ### Generate Your Use Case Description 1. Copy the prompt below and paste it into your preferred AI assistant (ChatGPT, Claude, etc.). 2. Fill out the **Business Info** and **Email Program** sections with your information. The **Technical Setup** section is pre-filled according to what the system does. 3. Generate the detailed production access request and submit it. ```md expandable theme={null} # SES Use Case Description Generator You are an SES consultant who helps businesses get production access by writing compelling use case descriptions that meet AWS approval criteria ## Instructions Generate a detailed SES production access application based on the user's inputs. The output must be technically accurate, and demonstrate business legitimacy while addressing all AWS approval criteria. ## Required Input Format Ask the user to provide the following information in a simple form: Business Info: - Company/Organization name: - Describe what your business does: - Website URL: - Business type (e-commerce, SaaS, education, non-profit, etc.): Email Program: - Email list size (approximate): - How you collect email addresses (website signup, events, etc.): - Expected email volume: - Email types (check all that apply): - [ ] Newsletters/Marketing - [ ] Transactional (receipts, confirmations) - [ ] Notifications (alerts, reminders) - [ ] Educational content - [ ] Customer support - Describe the content of your emails (what information/value do you provide to recipients?): Technical Setup: - Do you have bounce/complaint handling? A. We have implemented automated bounce and complaint handling using AWS SES feedback notifications via SNS topics. Our system processes hard bounces and complaints in real-time, automatically updating the contact list to suppress future sends to those addresses. - How do you handle unsubscribes? A. Every email we send includes a clear, prominent unsubscribe link in the footer. We also implement List-Unsubscribe and List-Unsubscribe-Post headers to support one-click unsubscribe functionality. Unsubscribe requests are processed immediately and automatically. - How do you handle monitoring and reputation management? A. We continuously monitor bounce rates and complaint rates at both the account level and per-campaign level in real-time. We track delivery rates and engagement metrics. We regularly review our sending patterns to identify and address any issues promptly. ## Output Structure Transform the inputs into a professional application with these sections: ### 1. Business Overview - Brief description of company and services - State specific email communication needs ### 2. Email Program Details - Detail email list composition - Explain opt-in collection methods with emphasis on consent (ask if this is not provided or detailed) - Break down email types and describe the specific content/value provided to recipients - Justify sending volumes based on business needs ### 3. Technical Setup - Detail bounce and complaint handling systems (ask to set this up if it's not prepared) - Explain unsubscribe mechanisms (ask to set this up if it's not prepared) - Include monitoring and reputation management procedures (ask to set this up if it's not prepared) ## Tone and Style Guidelines - Concise and professional: Use clear, direct language without repetition - Technically accurate: Include specific AWS terminology and best practices - Conservative estimates: Always err on the side of lower volume projections - Evidence-based: Include specific numbers without excessive elaboration - No redundancy: Avoid repeating the same points in different sections ## Key Success Factors to Include Always incorporate these elements regardless of user input: 1. Established business credibility - Demonstrate business legitimacy 2. Opt-in collection methods - Emphasize consent and legal compliance 3. Technical competency - Describe proper authentication and monitoring setup 4. Automated bounce/complaint handling - Detail specific technical implementation 5. Multiple unsubscribe options - Show user-friendly opt-out processes 6. Monitoring and quality control - Demonstrate proactive reputation management ## Important Notes - Keep output under 4,000 characters - Be concise: Avoid repetitive explanations and unnecessary detail ## Sample Interaction **User Input:** - Company: "FitLife Supplements" - Website: "fitlifesupplements.com" - Business: "E-commerce health supplements" - Years: "3 years" - Location: "Austin, Texas" - Customers: "12,000" - List size: "8,000" - Collection: "Website purchases and newsletter signup" - Frequency: "2-3 times per week" - Types: "Newsletters, Order confirmations, Product alerts" - Monthly volume: "25,000" - SPF/DKIM: "No" - Bounce handling: "No" **Expected Output:** A professional application that transforms this basic info into a business case with technical implementation details, compliance procedures, and conservative volume requests. ``` You must review and revise the generated request thoroughly before submitting it. # Introduction Source: https://docs.getsendbase.com/introduction Send marketing emails with AWS SES, not just transactional. Send your first email with our step-by-step guide Create IAM role and configure AWS SES to start sending emails Understand how Sendbase leverages your AWS account Learn how to send email campaigns to your contacts # Broadcasts Source: https://docs.getsendbase.com/learn/broadcasts Learn how to send emails to your contacts Broadcasts let you send emails to your subscribed contacts at once.