Amazon SES Blog https://aws.amazon.com/blogs/ses/ Tue, 01 Aug 2017 21:10:11 +0000 en-US hourly 1 Open and Click Tracking Have Arrived https://aws.amazon.com/blogs/ses/open-and-click-tracking-have-arrived/ Tue, 01 Aug 2017 21:10:11 +0000 1b9524272e5ee600f9170b10d0de8d634b72d4d9 We’re pleased to announce the addition of open and click tracking metrics to Amazon SES. These metrics will help you measure the effectiveness of the email campaigns you send using Amazon SES. We’re also adding the ability to publish email sending metrics to Amazon Simple Notification Service (Amazon SNS) using event publishing. This feature gives […] <p>We’re pleased to announce the addition of open and click tracking metrics to Amazon SES. These metrics will help you measure the effectiveness of the email campaigns you send using Amazon SES.</p> <p>We’re also adding the ability to publish email sending metrics to Amazon Simple Notification Service (<a href="https://aws.amazon.com/sns/">Amazon SNS</a>) using event publishing. This feature gives you greater control over the sending notifications you receive through Amazon SNS.</p> <h2>What’s new in this release?</h2> <p>When you send an email using Amazon SES, we now collect metrics related to opens and clicks. <em>Opens</em>, in this sense, refers to the number of users who successfully received your email and opened it in their email clients; <em>clicks</em> refers to the number of users who received an email and clicked one or more links in it.</p> <p>Additionally, you can now use event publishing to push email sending notifications—including open and click notifications—using Amazon SNS. Previously, you could send account-level notifications through Amazon SNS. These notifications were pretty limited: you could only receive notifications about bounces, complaints, and deliveries, and you would receive notifications about all of these events across your entire Amazon SES account. Now you can use event publishing to send notifications about deliveries, opens, clicks, bounces, and complaints. Furthermore, you can set up event publishing so that you only receive notifications about emails sent using the configuration sets you specify in those emails.</p> <h2>Why should I use open and click tracking?</h2> <p>Whether you are sending marketing emails, transactional emails, or notifications, you need to know how effective your communications are. The email sending metrics feature of Amazon SES gives you data about entire email response funnel—the total number of emails that were sent, bounced, viewed, and clicked. You can then transform those insights into action.</p> <p>For example, the open and click tracking feature can help you identify the customers who are most interested in receiving the messages you send. By narrowing down your list of recipients and focusing on your most engaged customers, you can save money (by sending fewer messages), improve the response rates of your marketing campaigns (by targeting only the customers who are most interested in what you have to say), and protect your sender reputation (by reducing the number of bounces and complaints against your sending domain).</p> <h2>How do I enable open and click tracking?</h2> <p>If you’ve set up Sending Metrics in the past, then you can easily add open and click tracking to your existing configuration sets. On the <a href="https://us-west-2.console.aws.amazon.com/ses/home?#configuration-set-list:">Configuration Sets page</a>, choose the configuration set that contains your sending event destination; edit the event destination, check the boxes for <strong>Open</strong>&nbsp;and <strong>Click</strong>&nbsp;(as shown in the image below), and then choose <strong>Save</strong>.</p> <p><img class="aligncenter wp-image-535 size-full" src="https://d2908q01vomqb2.cloudfront.net/632667547e7cd3e0466547863e1207a8c0c0c549/2017/07/31/OpenClick-Screenshot.png" alt="" width="766" height="381" /></p> <h2>How does open and click tracking work?</h2> <p>Amazon SES makes very minor changes to your emails in order to make open and click tracking work. At the bottom of each message, we insert a 1 pixel by 1 pixel transparent GIF image. Each email includes a unique link to this image file; when the image is opened, we can tell exactly which message was opened and by whom.</p> <p>To track clicks, we set up a redirect for each link in the message. When a recipient clicks a link, they are sent to an Amazon SES server, and are immediately forwarded to the destination address. As with open tracking, each of these redirect links is unique, allowing us to easily determine which recipient clicked the link, when they clicked it, and the email from which they arrived at the link.</p> <h2>Can I disable click tracking?</h2> <p>You can disable click tracking by adding a special tag to the anchor tags in your HTML. For example, if you were linking to the AWS home page, a normal anchor link would look something like this:</p> <pre>&lt;a href=&quot;https://aws.amazon.com/&quot;&gt;Amazon Web Services&lt;/a&gt;</pre> <p>To disable click tracking for that same link, you would modify to look like this:</p> <pre>&lt;a <strong>ses:no-track</strong> href=&quot;https://aws.amazon.com/&quot;&gt;Amazon Web Services&lt;/a&gt;</pre> <p>Because the <code>ses:no-track</code> attribute is non-standard HTML, we automatically remove it from the version of the email that arrives in your recipients’ inboxes.</p> <h2>How do I use event publishing with Amazon SNS?</h2> <p>If you’ve set up event destinations in the past, then the process of setting up an Amazon SNS event destination will be very familiar. You can add an Amazon SNS destination to an existing configuration set, or create a new configuration set that uses Amazon SNS as its event destination. To learn more, see “<a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/event-publishing-add-event-destination-sns.html">Set Up an Amazon SNS Event Destination for Amazon SES Event Publishing</a>” in our Developer Guide.</p> <p>We’re excited about this release. Let us know what you think of these new features in the <a href="https://forums.aws.amazon.com/forum.jspa?forumID=90">SES Forum</a>, or in the comments for this post.</p> Guest post: How EmailOctopus built an email marketing platform using Amazon SES https://aws.amazon.com/blogs/ses/guest-post-how-emailoctopus-built-an-email-marketing-platform-using-amazon-ses/ Wed, 12 Jul 2017 18:25:01 +0000 0066ad69704ee0913c05ffb5107fe6ecbd28e7e1 The following guest post was written by Tom Evans, COO of EmailOctopus. Our product, EmailOctopus, grew from a personal need. We were working on another business venture, and as our email subscriber base grew, the costs of using the larger email service providers became prohibitively expensive for an early-stage startup. At this point we were […] <p><em>The following guest post was written by Tom Evans, COO of EmailOctopus.</em></p> <hr style="border: .25px solid #eee;width: 25%;margin: 2em auto" /> <p>Our product, EmailOctopus, grew from a personal need. We were working on another business venture, and as our email subscriber base grew, the costs of using the larger email service providers became prohibitively expensive for an early-stage startup.</p> <p>At this point we were already using Amazon SES to send sign up confirmations to our users. We loved Amazon SES’ low pricing and high deliverability, but being a transactional email service, we missed some tracking features offered by our marketing provider. We decided to develop a simple interface to make it easier for us to build and track the performance of marketing emails on top of the Amazon SES platform.</p> <p>After sharing our accomplishments with other founders, and with no other SaaS solutions on the market that met the same need, we began to turn our basic script into a polished email marketing application. We named our application EmailOctopus. Over 4 years later, and with over 1.5 billion emails delivered through Amazon SES, our mission remains the same: to make contacting your customers as easy and inexpensive as possible.</p> <p>EmailOctopus is now a fully fledged platform, with thousands of users sending marketing campaigns every day. Our platform integrates directly with our customers’ AWS accounts and provides them with an easy-to-use front end on top of the SES platform. EmailOctopus users&nbsp;can upload or register subscribers who have opted into their correspondence (through an import or one of our many integrations), then send a one-off campaign or an automated marketing series, all while closely tracking the performance of those emails and allowing the recipients to opt-out.</p> <h2>Scaling EmailOctopus to handle millions of emails per day</h2> <p>Building an email marketing platform from scratch has presented a number of challenges, both technical and operational. EmailOctopus has quickly grown from a side project to a mature business that has sent over 1.5 billion emails through Amazon SES.</p> <p>One of the biggest challenges of our growth has been dealing with a rapidly expanding database. Email marketing generates a huge amount of data. We log every view, bounce, click, spam report, open and unsubscribe for every email sent through our platform. A single campaign can easily generate over 1 million of these events.</p> <p>Our event processing system sits on a number of microservices spread over <a href="https://aws.amazon.com/ec2/">EC2</a> and <a href="https://aws.amazon.com/lambda/">Lambda</a>, which allows us to selectively scale our services based on demand. Figure 1, below,&nbsp;demonstrates just how irregular this demand is. We save over $500 a month using an on-demand serverless model.</p> <div id="attachment_518" style="width: 650px" class="wp-caption aligncenter"> <img class="wp-image-518 size-large" src="https://d2908q01vomqb2.cloudfront.net/632667547e7cd3e0466547863e1207a8c0c0c549/2017/07/12/EmailOctopus-peaks-1024x368.png" alt="" width="640" height="230" /> <p class="wp-caption-text"><span style="border-top: 1px solid black;padding-top: .5em;font-size: small;font-family: monospace">Figure 1. Number of events processed over time.</span></p> </div> <p>This model helps us manage our costs and ensures we only pay for the computing power we need. &nbsp;We rely heavily on <a href="https://aws.amazon.com/cloudformation/">CloudFormation</a> scripts to edit that infrastructure; these scripts allow every change to be version-controlled and propagated across all of our environments. In preparing for this blog post, we took a look at how that template had changed over the years—we’d forgotten just how much it had evolved. As our user base grew from 1 customer to 10,000, a single EC2 instance writing to a MySQL database just didn’t cut it.&nbsp;We now rely on a large portion of the AWS suite to reliably consume our event data, as illustrated in Figure 2, below.</p> <div id="attachment_519" style="width: 650px" class="wp-caption aligncenter"> <img class="wp-image-519 size-large" src="https://d2908q01vomqb2.cloudfront.net/632667547e7cd3e0466547863e1207a8c0c0c549/2017/07/12/EmailOctopus-diagram-1024x587.png" alt="" width="640" height="367" /> <p class="wp-caption-text"><span style="border-top: 1px solid black;padding-top: .5em;font-size: small;font-family: monospace">Figure 2. Our current event processing infrastructure.</span></p> </div> <p>Operationally, our business has needed to make changes to scale too. Processes that worked fine with a handful of clients do not work so well with 10,000 users. We pride ourselves on providing our customers with a superior and personal service; to maintain that commitment, we dedicate 10% of our development time to improving our internal tools. One of these projects resulted in a dashboard which quickly provides us with detailed information on each user and their journey through the platform. The days of asking our support team to assemble database queries are long gone!</p> <h2>What makes EmailOctopus + SES different from the competition?</h2> <p>Amazon SES uses proprietary content filtering technologies and monitors the status of its services rigorously. This means that you’re likely to see increased deliverability on your communication, while saving up to 10x on your current email marketing costs. EmailOctopus pricing plans range from $0 to $109 per month (depending on the number of recipients you need to store), and the cost of sending email through Amazon SES is also very low: you pay nothing for the first 62,000 emails you send through Amazon SES each&nbsp;month, and&nbsp;$0.10 per 1,000 emails after that. Need to send a million emails in a month? You can do it for less than $100 with EmailOctopus + Amazon SES.</p> <p>Our easy-to-use interface and integrations make it easy to add new subscribers, and our email templates help you create trackable, beautiful, responsive emails. We even offer trigger-based automated email delivery—perfect for onboarding new customers.</p> <h2>I’m ready to get started!</h2> <p>Great! We’ve made it easy to start using EmailOctopus with Amazon SES. First, if you don’t already have one, <a href="https://console.aws.amazon.com/console/home">create an Amazon Web Services account</a>. Once you’ve done that, head over to our website and <a href="https://emailoctopus.com/account/sign-up">create an EmailOctopus account</a>. From there, we’ll walk you through the quick and easy process of linking the two services together.</p> <p>If you’ve never used Amazon SES before, you will also need to provide some information about the types of communication you plan to send. This important step in the process ensures that all new Amazon SES users are reputable, and that they will not have a negative impact on other users who send email through Amazon SES. Once you’ve finished that step, you’ll be ready to start sending emails using EmailOctopus and Amazon SES.</p> <p>To learn more about what EmailOctopus can do for your business, visit our website at <a href="https://emailoctopus.com">https://emailoctopus.com</a>.</p> <p>&nbsp;</p> Creating a Daily Dashboard to Track Bounces and Complaints https://aws.amazon.com/blogs/ses/creating-a-daily-dashboard-to-track-bounces-and-complaints/ Tue, 04 Jul 2017 16:03:52 +0000 210ac6472a05494683554e48c3cbfaa81eadc4c6 (Edited July 11, 2017)—We added a link to a CloudFormation stack in the “Building a Daily Dashboard” section. You can use the CloudFormation stack to create the daily dashboard in a few simple steps. Bounce and complaint rates can have a negative impact on your sender reputation, and a bad sender&nbsp;reputation makes it less likely […] <p><em>(Edited July 11, 2017)—We added a link to a CloudFormation stack in the “<a href="#building-a-daily-dashboard">Building a Daily Dashboard</a>” section. You can use the CloudFormation stack to create the daily dashboard in a few simple steps.</em></p> <p>Bounce and complaint rates can have a negative impact on your sender reputation, and a bad sender&nbsp;reputation makes it less likely that the emails you send will reach your recipients’ inboxes. Further, if your bounce or complaint rate is too high, we may have to suspend your Amazon SES account to protect other users. For these reasons, it is very important that you have a process in place to remove email addresses that have bounced or complained from your recipient list.</p> <p>This article includes background information about bounces and complaints. It also discusses a sample solution that you can use to keep track of the bounce and complaint notifications that you receive.</p> <h2>What is a Bounce?</h2> <p>A bounce occurs when a message cannot be delivered to the intended recipient. There are two types of bounces:</p> <ul> <li>A<em> hard bounce</em>&nbsp;occurs when a persistent issue prevents the message from being delivered. Hard bounces can occur when the recipient’s email address does not exist or the receiving domain does not exist. When an email hard bounces, it means that the recipient did not receive the message, and Amazon SES will no longer attempt to deliver the message.</li> <li>A<em> soft bounce</em>&nbsp;occurs when a temporary issue prevents a message from being delivered. Soft bounces can occur when the recipient’s mailbox is full, when the connection to the receiving email server times out, or when there are too many simultaneous connections to the receiving mail server. When an email soft bounces, Amazon will attempt to redeliver it. If the issue persists, Amazon SES will stop trying to deliver the message, and the soft bounce will be converted&nbsp;to a hard bounce.</li> </ul> <p>To learn more about bounces, see the <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/e-faq-bn.html">Amazon SES Bounce FAQ</a> in the <em>Amazon SES Developer Guide</em>.</p> <h2>What is a Complaint?</h2> <p>When an email recipient clicks the <strong>Mark as Spam</strong> (or similar) button in his or her email client, the ISP records the event as a complaint. If the emails that you send generate too many of&nbsp;these complaint events, the ISP may&nbsp;conclude that you’re sending spam. Many&nbsp;ISPs provide feedback loops, in which the ISP provides you with information about the message that generated the complaint event.</p> <p>For more information about complaints, see the <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/e-faq-cm.html">Amazon SES Complaint FAQ</a> in the <em>Amazon SES Developer Guide</em>.</p> <h2 id="building-a-daily-dashboard">Building a Daily Dashboard</h2> <p>We recently added a section to the <em>Amazon SES Developer Guide</em> that documents the process of creating a daily bounce and complaint tracking dashboard. You can find the procedures for creating this daily dashboard at <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/bouncecomplaintdashboard.html">http://docs.aws.amazon.com/ses/latest/DeveloperGuide/bouncecomplaintdashboard.html</a>.</p> <p>Alternatively, you can <a href="https://raw.githubusercontent.com/awslabs/aws-support-tools/master/SES/SESReports/ses-reports.yaml" target="_blank" rel="noopener noreferrer">download our CloudFormation stack</a> to implement this solution with just a few clicks. To learn more about deploying CloudFormation stacks, see “<a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/GettingStarted.Walkthrough.html">Get Started</a>” in the <em>AWS CloudFormation User Guide</em>.</p> <p>This solution uses several AWS components—including <a href="https://aws.amazon.com/sns/">Simple Notification Service (SNS)</a>, <a href="https://aws.amazon.com/sqs/">Simple Queue Service (SQS)</a>, <a href="https://aws.amazon.com/iam/">Identity and Access Management (IAM)</a>, <a href="https://aws.amazon.com/s3/">Simple Storage Service (S3)</a>, <a href="https://aws.amazon.com/lambda/">Lambda</a>, and <a href="https://aws.amazon.com/cloudwatch/">CloudWatch</a>—to create a dashboard that is emailed to you every day. The daily&nbsp;dashboard, illustrated&nbsp;in the following image, contains a list of the messages that generated bounces and complaints over the past 24 hours.</p> <p><img class="aligncenter wp-image-494 size-large" src="https://d2908q01vomqb2.cloudfront.net/632667547e7cd3e0466547863e1207a8c0c0c549/2017/06/20/SES-Blog_Bounce-Complaint-Dashboard-1024x481.png" alt="" width="640" height="301" /></p> <p>This solution uses SNS to track bounce and complaint notifications. Those notifications are then collected in an SQS queue. A CloudWatch trigger initiates a Lambda function, which collects the notification events from SQS, processes them, publishes a dashboard to an S3 bucket, and sends you an email when the dashboard is ready to view.&nbsp;The following image illustrates the architecture of this solution.</p> <p><img class="aligncenter wp-image-496 size-large" src="https://d2908q01vomqb2.cloudfront.net/632667547e7cd3e0466547863e1207a8c0c0c549/2017/06/20/SES-Blog_Bounce-Complaint-Dashboard-Architecture-1024x758.png" alt="" width="640" height="474" /></p> <p>When you receive the daily dashboard, you should use it to&nbsp;remove the addresses that hard bounced or complained from your recipient list. This measure will help protect&nbsp;your deliverability and inbox placement rates.</p> <p>This solution is just one method of tracking the bounces and complaints that you receive when sending email using Amazon SES. We hope you find this sample solution useful. If you have any questions about this solution, please leave a comment below, or start a discussion in the <a href="https://forums.aws.amazon.com/forum.jspa?forumID=90">Amazon SES forum</a>.</p> Amazon SES Can Now Automatically Warm Up Your Dedicated IP Addresses https://aws.amazon.com/blogs/ses/amazon-ses-can-now-automatic-warm-up-your-dedicated-ip-addresses/ Thu, 09 Mar 2017 17:02:23 +0000 73ad7d5c86413e25618037f90f0bc6151431d613 The SES team is pleased to announce that, starting today, Amazon SES can automatically warm up your new dedicated IP addresses. Before the automatic warm-up feature was available, Amazon SES customers who leased dedicated IPs implemented their own warm-up mechanisms. Customers gradually increased email sending through a new dedicated IP before using the dedicated IP […] <p>The SES team is pleased to announce that, starting today, Amazon SES can automatically warm up your new dedicated IP addresses. Before the automatic warm-up feature was available, Amazon SES customers who leased dedicated IPs implemented their own warm-up mechanisms. Customers gradually increased email sending through a new dedicated IP before using the dedicated IP to its full capacity. This blog post explains how Amazon SES warms up your dedicated IPs, and how to enable the warm-up feature.</p> <h3><strong>Why do I have to warm up my dedicated IPs?</strong></h3> <p>You must warm up your dedicated IPs before you send a high volume of emails. Many receiving ISPs do not accept emails from an IP that suddenly sends a large volume of email. ISPs perceive this behavior as an indicator of abuse and a possible source of spam. To avoid emails getting dropped or having your sending severely throttled, warm up your IPs by gradually increasing the volume of emails you send through a new IP address. You can find more guidance about the <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/dedicated-ips.html#dedicated-ip-warming">warm up process</a> in the developer guide.</p> <h3><strong>How does Amazon SES warm up my dedicated IPs?</strong></h3> <p>After you enable automatic warm-up, Amazon SES limits the maximum number of emails that you send daily through your new dedicated IP addresses according to a predefined warm-up plan. This automated warm-up process takes up to 45 days. The process ensures that traffic through the newly leased dedicated IP address is gradually increased to establish a positive reputation with receiving ISPs. The maximum daily amount of mail increases from the first day until a maximum of 50,000 emails can be sent from an IP.</p> <h3><strong>When do I have to enable the automatic warm-up?</strong></h3> <p>By default, automatic warm-up is enabled for your account. All newly leased dedicated IP addresses are placed in the automatic warm-up plan. You can disable the automatic warm-up from the Dedicated IPs page in the <a href="https://console.aws.amazon.com/ses/">Amazon SES console</a>. If you are already using dedicated IPs to send emails, go to the Amazon SES console to turn this feature on to take advantage of automatic warm-up.</p> <p><a href="https://console.aws.amazon.com/ses/" rel="attachment wp-att-477"><img class="aligncenter size-full wp-image-477" src="https://d2908q01vomqb2.cloudfront.net/632667547e7cd3e0466547863e1207a8c0c0c549/2017/03/09/PrintScreen.jpg" alt="PrintScreen" width="1751" height="663" /></a></p> <p>Note: disabling automatic warm-up stops the warm-up process. All of your IP addresses will be considered fully warmed up. Re-enabling automatic warm-up does not start the warm-up for the dedicated IPs already allocated to your Amazon SES account.</p> <h3><strong>What happens with the emails sent beyond the daily maximum limit from the warm-up plan?</strong></h3> <p>If you enabled automatic warm-up and you are leasing dedicated IPs for the first time, then all emails that you send beyond the pre-planned daily warm-up plan are sent through shared IPs instead. This means that during the warm-up period, Amazon SES uses your dedicated and shared IPs from the Amazon SES IP pools to send your emails. After the warm-up is complete, Amazon SES sends emails only through your dedicated IPs, and the maximum number of emails you can send is limited by your daily email sending quota. For more information, see <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/manage-sending-limits.html">Managing Your Amazon SES Sending Limits</a> in the Amazon SES Developer Guide.</p> <p>If you are an existing dedicated IP customer requesting additional dedicated IPs, emails beyond the daily maximum limit per dedicated IP in the warm-up plan are sent only through dedicated IPs already allocated to your account.</p> <h3><strong>Does automatic warm-up incur extra cost?</strong></h3> <p>No. See the <a href="https://aws.amazon.com/ses/pricing/">Amazon SES pricing page</a> for dedicated IP pricing information.</p> <p>We hope you find this feature useful! If you have any questions or comments, let us know in the <a href="https://forums.aws.amazon.com/forum.jspa?forumID=90">SES Forum</a> or in the comment section of the blog.</p> Amazon SES Now Offers Dedicated IP Addresses https://aws.amazon.com/blogs/ses/amazon-ses-now-offers-dedicated-ip-addresses/ Mon, 21 Nov 2016 17:00:35 +0000 00fb88bbad4e8e4b100ce4a5d69cc8fd807e7a1b Beginning March 9, 2017, you can warm up your leased dedicated IPs with the Amazon SES automatic warm-up feature. See this blog post for details. The SES team is pleased to announce that, starting today, you can lease IP addresses dedicated exclusively to your email sending. Prior to the availability of dedicated IPs, all Amazon […] <p><em>Beginning March 9, 2017, you can warm up your leased dedicated IPs with the Amazon SES <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/dedicated-ips.html">automatic warm-up</a> feature. See this <a href="https://aws.amazon.com/blogs/ses/amazon-ses-can-now-automatic-warm-up-your-dedicated-ip-addresses">blog post</a> for details.</em></p> <p>The SES team is pleased to announce that, starting today, you can lease IP addresses dedicated exclusively to your email sending. Prior to the availability of dedicated IPs, all Amazon SES customers sent their email through IP addresses shared by other Amazon SES customers. Although shared IPs remain the best fit for many of our customers, dedicated IPs offer several benefits that might be a great fit for your use case. This blog post explains the use cases that benefit from dedicated IPs, how to request them, and the considerations you need to take when you use them.</p> <h3><strong>Why should I use dedicated IPs?</strong></h3> <p>You might choose to lease dedicated IPs so that you can fully control the email coming from your IPs. Because you know exactly what mail is being sent from those IP addresses, it can make troubleshooting deliverability issues simpler.</p> <p>Also, most email certification programs require you to have dedicated IPs because they demonstrate your commitment to managing your email reputation.</p> <p>You might also choose dedicated IPs if you send multiple types of mail, such as marketing and transactional mail, and you want to isolate the reputation of your mail streams to improve your visibility and control over your email deliverability.</p> <p>Dedicated IPs also address whitelisting and security requirements, because they are an unchanging set of IP addresses. For example, you might use SES to send yourself operational notifications such as alarms. Knowing that all mail originating from your dedicated IPs is safe, you can whitelist the dedicated IPs with your incoming mail servers to ensure that they always accept mail from those IP addresses.</p> <h3><strong>Am I a good candidate for dedicated IPs?</strong></h3> <p>To be a good candidate for dedicated IPs, we typically recommend a sustained and consistent sending pattern and a minimum daily sending volume of 175,000 emails per day (on average). However, if you need dedicated IPs for whitelisting or security purposes and your sending does not meet the minimum volume requirement, feel free to apply anyway, and we will evaluate your request.</p> <p>SES provides extensive <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/ses-best-practices.html">documentation</a> on email-sending best practices as well as <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/blacklists.html">guidelines</a> regarding IP-blocking events, but with dedicated IPs the onus is on you to ensure that you send high-quality email that your recipients expect, want, and engage with. Even though you control the email coming from your dedicated IP addresses, SES will continue to monitor SES’s entire IP space to ensure a high deliverability bar for all SES customers.</p> <p>To learn more about the requirements and whether dedicated IPs are right for you, see <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/dedicated-ips.html#dedicated-ip-trade-offs">Trade-offs Between Dedicated IPs and Shared IPs</a> in the developer guide.</p> <h3><strong>How can I request dedicated IPs?</strong></h3> <p>To request dedicated IPs, open an <a href="http://aws.amazon.com/ses/extendedaccessrequest/" target="_blank">SES Sending Limits Increase case</a> in Support Center. You can also reach the limit increase form from the <a href="https://console.aws.amazon.com/ses/" target="_blank">Amazon SES console</a>. First, however, be sure to read <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/dedicated-ips.html#dedicated-ip-case-request">Requesting Dedicated IPs</a> in the developer guide for instructions on how to use an SES Sending Limits Increase case to request dedicated IPs.</p> <h3><strong>How will my sending process change?</strong></h3> <p>If your request for dedicated IPs is granted, you have to warm up your dedicated IPs before you continue to send emails in the usual way. Warming up your dedicated IPs before you start sending large amounts of email is needed because many receiving ISPs will not accept email from IPs that suddenly send a large volume of email. You warm up your IPs by gradually increasing the volume of emails you send through a new IP address. Each IP address needs some time to build a positive reputation. ISPs determine an IP address’s reputation in part based on the quality and the volume of email sent through that IP address. If you’re not sending a lot of email, a dedicated IP can actually hurt your deliverability because receiving servers aren’t seeing enough email to know whether to trust the IP address or not. Also, your traffic might be rejected by ISPs if you don’t warm up your IPs before sending. You can find more guidance about the <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/dedicated-ips.html#dedicated-ip-warming">warm-up process</a> in the developer guide.</p> <h3><strong>Do dedicated IPs incur an extra cost?</strong></h3> <p>Yes. See the <a href="https://aws.amazon.com/ses/pricing/">Amazon SES pricing page</a> for dedicated IP pricing information.</p> <h3><strong>Why would I choose to continue using the shared IP model instead of moving to dedicated IPs?</strong></h3> <p>With SES, shared IPs are commitment-free, enable you to send with arbitrary email volume, and there is no cost beyond the regular SES email sending price. Shared IPs are also pre-warmed, which means that you can start sending a large volume of emails through them right away. With shared IPs, it is easier to maintain a good reputation with irregular sending spikes and there is no minimum usage required.</p> <h3><strong>Can I use both shared IPs and dedicated IPs for my sending?</strong></h3> <p>Yes. You can do this by using two different AWS accounts. Request dedicated IPs for one account, and leave the other account at its default option, which is the shared IP model. For example, you could send your transactional mail, which has a steadier sending cadence, through dedicated IPs. For large bursts of mail, you could use shared IPs instead. More guidance about sending from multiple AWS accounts can be found <a href="https://aws.amazon.com/blogs/ses/can-i-use-multiple-aws-accounts-with-ses/">here</a>.</p> <p>We hope you find this feature useful! If you have any questions or comments, let us know in the <a href="https://forums.aws.amazon.com/forum.jspa?forumID=90">SES Forum</a> or here in the comment section of the blog.</p> Introducing Sending Metrics https://aws.amazon.com/blogs/ses/introducing-sending-metrics/ Wed, 02 Nov 2016 20:54:53 +0000 2caea886c4f93ddc755c26febe3b3be9ccedf723 The SES team is pleased to announce sending metrics. You will now be able to segment your sending statistics and publish them to CloudWatch or Kinesis Firehose. We want to help you improve your deliverability, and this new feature makes it easier to pinpoint problems hidden by aggregate account-level statistics. Why use sending metrics? With […] <p>The SES team is pleased to announce sending metrics. You will now be able to segment your sending statistics and publish them to CloudWatch or Kinesis Firehose. We want to help you improve your deliverability, and this new feature makes it easier to pinpoint problems hidden by aggregate account-level statistics.</p> <h3><strong>Why use sending metrics?</strong></h3> <p>With the launch of sending metrics, SES enables you to better segment your send statistics, so that you can see how specific types of emails perform. You will find it easier to diagnose problems quickly before they threaten the reputation of your whole domain.</p> <p>For example, you may want to see if a specific email campaign is targeting the right people by tracking the bounce and complaint rates separately from your other campaigns and transactional email. Alternatively, you may manage sending for a larger company and may want to get statistics on the email that each team sends to make sure they all uphold the same standards.</p> <h3><strong>For what types of events can I see metrics?</strong></h3> <p>Five types of events are available through this feature:</p> <ul> <li><strong>Send</strong> – The API call to SES was successful and SES will attempt to deliver the email.</li> <li><strong>Reject</strong> – SES rejected the email after the initial send API call was successful. This typically happens when we detect that the email contains a virus.</li> <li><strong>Delivery</strong> – The remote server accepted the email from SES. It is still possible that the remote server will send an asynchronous bounce or that the recipient will complain later on.</li> <li><strong>Bounce</strong> – The remote server rejected the email. Note that SES automatically retries when getting a “soft” bounce. Only permanent failures to deliver the email will show up in this statistic.</li> <li><strong>Complaint</strong> – The recipient marked the incoming email as spam.</li> </ul> <p>For best practices in dealing with bounces and complaints, please see the <a href="http://media.amazonwebservices.com/AWS_Amazon_SES_Best_Practices.pdf">Amazon SES Best Practices</a>.</p> <h3><strong>How can I see my sending metrics?</strong></h3> <p>SES supports publishing to Kinesis Firehose and CloudWatch.</p> <p>CloudWatch is best suited for situations where you want aggregate metrics. SES will publish metrics to your account in CloudWatch. Your metrics will be aggregate event counts segmented based on dimensions you specify in your setup in SES. You can see event counts by type and combination of specified dimensions. For example, if you have a dimension called <em>Campaign</em>, you could tag your emails with a message tag called <em>Campaign</em> and see the sending metrics for each individual campaign separately in CloudWatch.</p> <p>Firehose enables you to see individual events sent by SES published as records to a stream that will save it to S3, feed it into Kinesis Analytics, make it available in an Elasticsearch Service cluster, or push it to Redshift. The event will include information like the type, message tags, time stamp, and message ID associated with the message.</p> <h3><strong>How do I enable sending metrics?</strong></h3> <p>With the release of this feature, SES will begin publishing basic account-level metrics to CloudWatch on your behalf. In order to start getting more detailed metrics, you must first create a <em>configuration</em> <em>set</em>, which will contain event destinations that specify where to publish the events. You can use either the SES console or <a href="http://docs.aws.amazon.com/ses/latest/APIReference/Welcome.html">APIs</a>.</p> <p>To get started with sending metrics using the console:</p> <ol> <li>Click on the <strong>Configuration Sets</strong> link from the navigation pane on the left, and then on the <strong>Create Configuration Set</strong> button. Name your new configuration set.</li> <li>After creating the configuration set, click on your new configuration to go to a page where you can add event destinations to define where your events should be published. You can select either CloudWatch or Firehose.</li> <li>Give your new destination a name and select which event types SES will send to this destination. You can send a particular type of event to multiple destinations if you want.</li> <li>Configure destination-specific info:</li> </ol> <ul> <li>For CloudWatch, this means adding the dimensions. The values of the message tags or email headers with names that match your dimensions will be associated with that event. (See the <a href="http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html">Amazon CloudWatch Concepts documentation</a> for more information about how this will work in CloudWatch.) If the tag or header is not present for a given message, SES will use the default value you specify instead.</li> <li>For Firehose, specify the name of the stream and the role SES will assume to publish the events to your Firehose stream. SES will put a record containing a JSON representation of each event to that stream. You can have SES create a&nbsp;role with permissions to publish to Firehose on your behalf, select an existing role, or create the role yourself. SES will verify that it can assume the specified role and use it to publish to the specified stream before allowing you to save your Firehose destination.</li> </ul> <p>When you are finished with the definition, you can start setting the new optional parameter called <em>ConfigurationSetName</em> on the <em>SendEmail</em> and&nbsp;<em>SendRawEmail</em> APIs or passing in the optional <em>X-SES-CONFIGURATION-SET</em>&nbsp;header when using <em>SendRawEmail</em>&nbsp;and the SMTP endpoint. If both the parameter and header are specified, the configuration set from the parameter will take precedence. Emails&nbsp;sent with&nbsp;a configuration set&nbsp;specified will trigger events, which will be published to the event destinations associated with that configuration set.</p> <h3><strong>How do message tags work?</strong></h3> <p>Like headers, message tags are message-specific key-value pairs, but you specify them as a parameter to the <em>SendEmail</em>/<em>SendRawEmail</em> API call. They will be used as value for a CloudWatch dimension or show up in the record for the event published to Firehose.</p> <p>For example, you could tag your emails with a tag called <em>Type</em> and use values like <em>Transactional</em>, <em>Marketing</em>,<em> Customer_Support</em>, etc. Then, you could add a <em>Type</em> dimension in your CloudWatch event destination and see metrics broken down by each of those email types.</p> <p>To help you get started, SES will automatically tag all emails with:</p> <ul> <li><strong>configuration set name</strong> (<em>ses:configuration-set</em>)</li> <li><strong>caller identity</strong> (<em>ses:caller-identity</em>)</li> <li><strong>MAIL FROM domain</strong> (<em>ses:from-domain</em>)</li> <li><strong>source IP</strong> (<em>ses:source-ip</em>)</li> <li><strong>outgoing IP</strong> (<em>ses:outgoing-ip</em>)</li> </ul> <p>Additional SES-provided tags may be available in the future. See our documentation for an up to date <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/event-publishing-using-auto-tags.html">list of auto-tags</a>.</p> <p>These auto-tags will be present when appropriate (for example, the source IP will be available when you use the SMTP interface) and you can use them the same way you would use any custom tags you add.</p> <p>For example, if you manage an AWS account to send email on behalf of multiple users, you could set up a configuration set with a CloudWatch destination that has a <em>ses:caller-identity dimension</em>. You could then add this configuration set as a parameter to all outgoing email sending calls and get a detailed breakdown by the IAM user that was used to send the email for the various event metrics. Alternatively, if you use multiple domains to send emails, you could use the <em>ses:from-domain</em> tag instead to get sending statistics by domain.</p> <h3><strong>How do these events look at the various event destinations?</strong></h3> <p>In <strong>CloudWatch</strong>, you will find new choices inside the SES namespace based on your event destinations as well as a new Account Metrics option. The Account Metrics option contains basic, account-wide metrics equivalent to the ones currently available in the <em>Sending Statistics</em> section of the SES Console or the <em>GetSendStatistics</em> API. If you choose one of the options based on your configuration sets, you will see a metric per unique combination of tag values, which you can graph or set alarms on.</p> <p>With&nbsp;<strong>Firehose</strong>, you can configure your&nbsp;stream to put events to various services.</p> <p>You can consume the events directly from&nbsp;<strong>S3</strong>. If you choose this option,&nbsp;you should see files containing one JSON object per line representing an individual event. The file contains an aggregation of events&nbsp;based on a time interval which you can configure in the stream setup. The format looks like:</p> <pre><code class="lang-json">{&quot;eventType&quot;:&quot;Send&quot;,&quot;mail&quot;:{&quot;timestamp&quot;:&quot;2016-10-17T18:46:39.808Z&quot;,&quot;source&quot;:&quot;source&quot;,&quot;sourceArn&quot;:&quot;sourceArn&quot;,&quot;sendingAccountId&quot;:&quot;XXXXXXXXXXXX&quot;,&quot;messageId&quot;:&quot;574af616-10fc-4298-abdc-16be2cf77afc&quot;,&quot;destination&quot;:[&quot;a@example.com&quot;],&quot;headersTruncated&quot;:false,&quot;headers&quot;:[{&quot;name&quot;:null,&quot;value&quot;:null}],&quot;commonHeaders&quot;:{&quot;messageId&quot;:&quot;574af616-10fc-4298-abdc-16b02cf77afc&quot;},&quot;tags&quot;:{&quot;ses:configuration-set&quot;:[&quot;FirehoseTest&quot;],&quot;ExampleTagName&quot;:[&quot;ExampleTagValue&quot;]}},&quot;send&quot;:{}} {&quot;eventType&quot;:&quot;Bounce&quot;,&quot;bounce&quot;:{&quot;bounceType&quot;:&quot;Permanent&quot;,&quot;bounceSubType&quot;:&quot;ContentRejected&quot;,&quot;bouncedRecipients&quot;:[{&quot;emailAddress&quot;:&quot;fake.person@fakeDomain.com&quot;}],&quot;timestamp&quot;:&quot;2016-10-17T18:46:39.808Z&quot;,&quot;feedbackId&quot;:&quot;63e7a3ba-ad42-4d6a-b736-262562369be4&quot;,&quot;reportingMTA&quot;:&quot;reportingMta.com&quot;},&quot;mail&quot;:{&quot;timestamp&quot;:&quot;2016-10-17T18:46:39.808Z&quot;,&quot;source&quot;:&quot;source&quot;,&quot;sourceArn&quot;:&quot;sourceArn&quot;,&quot;sendingAccountId&quot;:&quot;XXXXXXXXXXXX&quot;,&quot;messageId&quot;:&quot;71ae6d3f-540b-4310-80ae-5f34d63dcb81&quot;,&quot;destination&quot;:[&quot;a@example.com&quot;],&quot;headersTruncated&quot;:false,&quot;headers&quot;:[{&quot;name&quot;:null,&quot;value&quot;:null}],&quot;commonHeaders&quot;:{&quot;messageId&quot;:&quot;71ae6d3f-54cb-4310-80ae-5f34d63dcb81&quot;},&quot;tags&quot;:{&quot;ses:configuration-set&quot;:[&quot;FirehoseTest&quot;],&quot;ExampleTagName&quot;:[&quot;ExampleTagValue&quot;]}}}</code></pre> <p>Alternatively, you can have <strong>Redshift&nbsp;</strong>load the data from your S3 bucket. You can specify a schema that will convert the JSON objects into rows in a relational database that you can query using SQL. For more information on how to set this up, see <a href="https://docs-aws.amazon.com/ses/latest/DeveloperGuide/event-publishing-redshift.html">our&nbsp;Redshift event publishing tutorial</a>.</p> <p>You can also feed the data into <strong>Amazon&nbsp;Elasticsearch Service</strong>, which&nbsp;is a managed service that makes it easy to create a domain and deploy, operate, and scale Elasticsearch clusters in the AWS Cloud. Elasticsearch is a popular open-source search and analytics engine. To learn more, see the <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/what-is-amazon-elasticsearch-service.html">Amazon Elasticsearch Service documentation</a>.</p> <p>One example of a tool built on top of Elasticsearch is <strong>Kibana</strong>, which you can use to visualize data. Here’s a simple example:</p> <p><img class="alignnone wp-image-411 size-large" src="https://d2908q01vomqb2.cloudfront.net/632667547e7cd3e0466547863e1207a8c0c0c549/2016/10/26/Kibana2-1024x518.png" alt="" width="640" height="324" /></p> <p>&nbsp;</p> <p>For more details on how to set up Elasticsearch and Kibana, see <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/event-publishing-elasticsearch.html">our tutorial</a>.</p> <p>This is not an exhaustive list, and&nbsp;there may be additional options for consuming and analyzing data pushed through Firehose.</p> <h3><strong>How much will this cost me?</strong></h3> <p>Although you can now access basic account-level email sending statistics in CloudWatch for free, normal <a href="https://aws.amazon.com/cloudwatch/pricing/">CloudWatch prices</a> apply for any metrics you collect using configuration sets. You may also incur additional costs by using other AWS services. For example, if you use a Firehose stream to push event data to an S3 bucket, standard S3 charges will apply. SES itself will not charge for this feature beyond current SES pricing.</p> <h3><strong>What if I don’t specify a configuration set on my outgoing emails?</strong></h3> <p>You can still get the usual metrics from the <em>GetSendStatistics</em> API and CloudWatch at the account level, but none of the new, more granular metrics will be available. SES will ignore any tags on an email with no configuration set specified.</p> <p>We hope that you enjoy this feature! As always, please leave any comments and questions you may have in the <a href="https://forums.aws.amazon.com/forum.jspa?forumID=90">SES Forum</a> or here in the comments section of the blog.</p> Do Your Recipients Know Who You Are? https://aws.amazon.com/blogs/ses/do-your-recipients-know-who-you-are/ Wed, 14 Sep 2016 23:12:25 +0000 389717f5e52d426d76ef7d8d3aef5505d6a422b5 When you send an email for your organization, you want your recipients to read it. For that to happen, your email needs to be delivered, and your recipients need to identify the mail as valuable and worth reading. Of course, you need to provide valuable content in the email itself, but there is more to […] <p> When you send an email for your organization, you want your recipients to read it. For that to happen, your email needs to be delivered, and your recipients need to identify the mail as valuable and worth reading. Of course, you need to provide valuable content in the email itself, but there is more to it: If the email is not clearly branded and identifiable as being from the entity that the recipient signed up to get email from, recipients are likely to ignore your mail, or, worse, hit the “this is spam” button.</p> <p> As such, SES requires that you clearly align the emails you send with your organization by following the best practices outlined in this blog post.</p> <p></p> <h3>Before we begin…</h3> <p></p> <p> First make sure that you are only sending mail to people who signed up to receive email from you directly, not addresses you acquired in any other way. For example, do not send mail to bought or rented lists, addresses collected by your partners, or recipients who signed up with another brand that you own. See the&nbsp;<a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/best-practices-recipients.html">Amazon SES Developer Guide</a>&nbsp;for guidelines on how to obtain and maintain your recipient list.</p> <p></p> <h3>Clearly aligning your emails with your organization</h3> <p></p> <p> If you are sending an email to people who signed up to receive mail from&nbsp;<em>example.com</em>, then the following should always be true:&nbsp;</p> <ol> <li> <strong>The &quot;From&quot; address of the email should be&nbsp;<em>@example.com</em></strong>.&nbsp;The &quot;From&quot; address is the address from which you send the emails. This is the email address or domain you verified with SES.</li> <li> <strong>The &quot;Friendly From&quot; name should clearly be associated with&nbsp;<em>example.com</em></strong>. The &quot;Friendly From&quot; name is the name that displays as the sender of the email in the recipient’s email inbox.</li> <li> <strong>The email itself should clearly be branded as a message from&nbsp;<em>example.com</em></strong>.&nbsp;Small text in a footer is not sufficient. A good example of branding is to prominently display the logo of&nbsp;<em>example.com</em>&nbsp;in the email.</li> <li> <strong>The email should include a reminder of why the user is getting the message</strong>.&nbsp;For instance, you could include a sentence such as &quot;You signed up to get mail from&nbsp;<em>example.com</em>&nbsp;on March 24, 2015.&quot;</li> </ol> <p></p> <h3>Example 1: Promotional mail for partners</h3> <p></p> <p> One example we have seen a lot is that users sign up with a site that promotes deals of some sort, with the expectation that the site will send them mail about deals, special promotions, etc. However, the mail they actually receive is branded as the product with the deal (the partner’s brand) rather than the brand of the site they signed up with. As far as users can tell, they’re getting messages from the partner company – a company they did not sign up with – marketing a variety of products and services.&nbsp;</p> <p> There is no easy way for users to see that these messages are actually coming from the deal site that they signed up with. Perhaps this information is visible if they look closely at the small print in the footer of the email, but generally speaking, this isn’t good enough. In these cases, users can easily end up getting annoyed by this mail and hitting the spam button. They may have signed up with the deal site, but they did not sign up with the individual companies that they appear to be getting mail from.</p> <p> The solution is simple. Make sure the promotions are sent from the deal site. Make sure the mail itself is branded prominently with the deal site’s logo. Include an introductory statement like, “Here is today’s deal from the deal site.” Underneath that, include the promotion for the third party. Then it is absolutely clear to the recipient that the message from the third party is a service of the deal site that the recipient actually signed up with.</p> <p></p> <h3>Example 2: Election mail</h3> <p></p> <p> Here is a similar example in another sphere:&nbsp; It is election season, and someone signs up with a political party to get mail from that party. The party wants to promote candidates that are running for a variety of offices. The party sends mail that looks like it is from Candidate X to people who live in the right geographic area to vote for Candidate X. Candidate X is from the party that these people signed up to get email from, so this is no problem, right? Wrong. If people signed up with the political party, it is okay to send mail from the party, but unless they specifically signed up to get mail from Candidate X, it is not okay for Candidate X to send them mail.</p> <p> The solution is the same as for the deal site: The party can send the mail, but the mail has to clearly be from the party itself. The party can indicate this with the &quot;From&quot; domain, the &quot;Friendly From&quot; name, and the branding in the mail. The party should also begin with a quick message that says “We thought you would be interested in this message from Candidate X…” Once again, things are aligned: Users only get email from the organization they signed up with, and this is absolutely clear just by glancing at the email they receive.</p> <p></p> <h3>This is about best practices, not the law</h3> <p></p> <p> In both of the cases above, there may well be language at the original site indicating that by signing up with the site, recipients are giving permission for partners, affiliates, or third parties to email them. By including this sort of language, this kind of sending may well be legal, and the recipient may have technically given permission for it.</p> <p> However, this kind of sending is still problematic and may cause us to revoke your ability to send mail with SES. Unless a user explicitly and directly signed up with the organization that, on casual inspection, appears to be sending them mail, there is a high likelihood that the message will be identified as spam either explicitly by the user or by automated algorithms that track engagement. To protect our ability to deliver high quality mail for all senders, SES requires that senders on our platform make it obvious to the recipient that messages are from an organization the recipient signed up with. If this is not obvious, then we consider the message to be unsolicited.</p> <p></p> <h3>Remember…</h3> <p></p> <p> The important thing here is alignment. If a user signs up with a particular organization, then that organization — and&nbsp;<em>only</em>&nbsp;that organization — should send the user email: no partners, no other brands, no affiliates, no third parties. To avoid confusion, the mail itself has to make its connection to the organization the recipient signed up with absolutely clear. Obscuring that connection can confuse users and make your mail look unsolicited, even if the user did in fact sign up for your mail. Mail without a clear connection to the original organization the recipient signed up with is not allowed on SES.</p> <p> Keep your sign-ups, &quot;From&quot; addresses, and the branding of your messages aligned, and you should be in good shape!</p> Amazon SES Now Includes Original Message Headers in Notifications https://aws.amazon.com/blogs/ses/amazon-ses-now-includes-original-message-headers-in-notifications/ Tue, 14 Jun 2016 17:00:50 +0000 c29bd7f7f53f231e9d72640ca7b1c8e1aa493533 The Amazon SES team is pleased to announce the addition of original email headers to the bounce, complaint, and delivery notifications SES provides through Amazon SNS. We strive to make your email-sending process easier, and today we’re taking another step in that direction. Increasing your visibility into the feedback you receive from SES has always […] <p>The Amazon SES team is pleased to announce the addition of original email headers to the bounce, complaint, and delivery notifications SES provides through Amazon SNS.</p> <p>We strive to make your email-sending process easier, and today we’re taking another step in that direction. Increasing your visibility into the feedback you receive from SES has always been a key focus for us. Starting today, the headers you pass to SES in your email-sending requests can be made available in your SNS notifications. Read on for answers to some common questions.</p> <h3>How do I enable this feature?</h3> <p></p> <p>Use the Amazon SES console or API to configure the notification settings for an identity (email address or domain) and notification type (bounce, complaint, or delivery).</p> <p>For example, to use the SES console to include the original headers for an identity’s bounce notifications, you’d go to the notification settings for an identity and select <strong>Include original headers</strong> next to the bounce notification configuration:</p> <p><img class="alignnone wp-image-101 size-full" src="https://d2908q01vomqb2.cloudfront.net/632667547e7cd3e0466547863e1207a8c0c0c549/2016/09/23/original-message-headers-selection-2.png" alt="original-message-headers-selection" width="500" height="157" /></p> <p>After this feature is enabled, the notifications will contain the headers in both raw name/value format and in JSON format for commonly provided headers.</p> <h3>How can I leverage this feature in my email sending?</h3> <p></p> <p>When SES successfully enqueues your email, it returns a unique message identifier (message ID). Previously, to associate an SNS notification to an original message send request, you needed to store a mapping between your own message identifier and the SES message ID. You no longer need to do that. You can include your identifier as a custom header, or even in the Message-ID header, and SES will return that to you, removing the need for you to maintain your own mapping.</p> <p>You can also now leverage custom message headers to easily separate subsets of your email stream. For example, say you suspect that a specific type of email you send through SES may be causing a higher than usual complaint rate. You can mark those emails with a custom header value, and later perform a programmatic analysis on the received SNS notifications to see how the marked emails are behaving compared to your overall sending.</p> <h3>How about decoding header values? Does SES help me there?</h3> <p></p> <p>SES unfolds and decodes the header values for you. If SES isn’t able to decode a header, it will return the raw provided value.</p> <h3>Are there any limits to the headers in the notifications?</h3> <p></p> <p>There is no limit on the number of headers SES returns to you, but 10 KB is the maximum header size for each notification. If your header section surpasses 10 KB, SES will return the first 10 KB of headers and set headersTruncated to true.</p> <h3>Does this change have any impact on how SES processes messages?</h3> <p></p> <p>No. SES still adds or overwrites specific headers like Date and Message-ID. Check out our <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/header-fields.html">header appendix</a> for more information.</p> <h3>Is there any potential for this change to impact my notification parser?</h3> <p></p> <p>If you do not enable this feature by using the SES console or API, your notifications will remain the same. If you enable the feature, standard JSON parsers will continue to parse the notifications correctly. If you do custom parsing, please check your parser implementation to ensure that it still works with SES notifications. As an example, line parsers are not always compatible with the addition of new information, and would therefore need to be updated to accommodate the new header fields.</p> <p>For examples of bounce, complaint, and delivery SNS notifications, check out our <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications-via-sns.html">developer guide</a>.</p> <p>We hope you find this feature useful! If you have any questions or comments, let us know in the <a href="https://forums.aws.amazon.com/forum.jspa?forumID=90">SES Forum</a> or here in the comment section of the blog.</p> Amazon SES Now Supports Custom MAIL FROM Domains https://aws.amazon.com/blogs/ses/amazon-ses-now-supports-custom-mail-from-domains/ Mon, 14 Mar 2016 16:33:06 +0000 5bca319e2d0ed55c40ab0ed9aeeaaaa7580237b5 The Amazon SES team is pleased to announce that, to increase your email authentication options, you can now use your own MAIL FROM domain when you send emails with SES. First, a quick refresher on the different “source” addresses associated with an email: an email has a “From” address and a MAIL FROM address. The […] <p>The Amazon SES team is pleased to announce that, to increase your email authentication options, you can now use your own MAIL FROM domain when you send emails with SES.</p> <p>First, a quick refresher on the different “source” addresses associated with an email: an email has a “From” address and a MAIL FROM address. The “From” address is the address that you pass to SES in the header of your email. This is the address that recipients see when they view your email in their inbox (<a href="https://tools.ietf.org/html/rfc5322">RFC 5322</a>). The MAIL FROM address (a.k.a. “envelope MAIL FROM”), on the other hand, is the address that the sending mail server (SES) transmits to the receiving mail server to indicate the source of the mail (<a href="https://tools.ietf.org/html/rfc5321">RFC 5321</a>). The MAIL FROM address is used by the receiving mail server to return bounce messages and other error notifications, and is only viewable by recipients if they inspect the email’s headers in the raw message source. By default, SES uses its own MAIL FROM domain (<em>amazonses.com </em>or a subdomain of that) when it sends your emails.</p> <h3>Why use my own MAIL FROM domain?</h3> <p></p> <p>You might choose to use your own MAIL FROM domain to give you more flexibility in complying with&nbsp;<a href="https://dmarc.org/">Domain-based Message Authentication, Reporting and Conformance (DMARC)</a>. DMARC is an email authentication protocol that relies on two other authentication protocols (<a href="http://www.openspf.org/">Sender Policy Framework (SPF)</a>&nbsp;and&nbsp;<a href="http://www.dkim.org/">DomainKeys Identified Mail (DKIM)</a>) to enable receiving mail servers to validate that an incoming email is authorized by the owner of the sending domain and has not been modified during transit.</p> <p>An email can comply with DMARC in two ways: by satisfying the DKIM requirements and/or by satisfying the SPF requirements. You can use either method, but some senders prefer to use both DKIM and SPF for maximum deliverability. As established by DMARC, the requirements for each validation are as follows:</p> <ul> <li style="margin-left: 40px"><strong>DKIM</strong>. The requirements to pass DKIM validation for DMARC are: 1) the message must have a valid DKIM signature, and 2) the domain in the DKIM signature must align with the domain in the “From” address in the header of the email. You can easily achieve DKIM validation with SES, which provides a tool (<a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">EasyDKIM</a>) to DKIM-sign your messages automatically.</li> <li style="margin-left: 40px"><strong>SPF</strong>. The requirements to pass SPF validation for DMARC are: 1) The domain in the MAIL FROM address of the email must authorize the sending mail server to send for it via a DNS record, and 2) the domain in the email’s “From” address must match the MAIL FROM domain. When SES uses its default MAIL FROM domain, the first SPF requirement is satisfied (because the MAIL FROM domain is&nbsp;<em>amazonses.com</em>, and the mail server is SES), but the second requirement is not satisfied. This is where the benefit of using your own MAIL FROM domain comes in – it enables you to meet that second SPF requirement.</li> </ul> <h3>Can I use any domain as my MAIL FROM domain?</h3> <p></p> <p>The MAIL FROM domain you use with SES must be a subdomain of the verified identity you want to use it with. For example, a MAIL FROM domain of&nbsp;<em>bounce.example.com</em>&nbsp;would be a legitimate MAIL FROM domain for verified domain&nbsp;<em>example.com</em>&nbsp;or verified email address&nbsp;<em>user@example.com</em>. An additional requirement is that the MAIL FROM domain you use with SES must not be a domain that you use in a “From” address if the MAIL FROM domain is the destination of email feedback forwarding.</p> <h3>How do I set it up?</h3> <p></p> <p>You configure an identity to use a specific MAIL FROM domain within the Identity Management part of the SES console, or by using the SES API. You also must publish MX and SPF records to your domain’s DNS server. When SES successfully detects the MX record, emails you send from the identity will use the specified MAIL FROM domain. For a full description of the set-up procedure, see the <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from-set.html">developer guide.</a></p> <h3>Will my sending process change?</h3> <p></p> <p>No. After you configure a verified identity to use a specified MAIL FROM domain and SES successfully detects the required MX record, you simply continue to send emails in the usual way.</p> <p>We hope you find this feature useful! If you have any questions or comments, let us know in the&nbsp;<a href="https://forums.aws.amazon.com/forum.jspa?forumID=90">SES Forum</a>&nbsp;or here in the comment section of the blog.</p> Welcome, Mandrill Customers! https://aws.amazon.com/blogs/ses/welcome-mandrill-customers/ Fri, 26 Feb 2016 22:47:17 +0000 aeec0489dbef8083c90e572937545a6176786a92 After the recent announcement of changes with Mandrill, we have received many questions from Mandrill customers who are looking at options for email service providers. Moving to a new platform can be daunting. If you want to understand what SES is and what it can do for you, check out our product detail page and […] <p> After the recent announcement of <a href="http://blog.mailchimp.com/important-changes-to-mandrill/">changes with Mandrill</a>, we have received many questions from Mandrill customers who are looking at options for email service providers.</p> <p> Moving to a new platform can be daunting. If you want to understand what SES is and what it can do for you, check out our <a href="http://aws.amazon.com/ses/details/">product detail page</a> and <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/getting-started.html">Getting Started</a> guide. We also have our re:Invent <a href="https://www.youtube.com/watch?v=5PT5e8iQyBc">2014</a> and <a href="https://www.youtube.com/watch?v=VDBs_J5i6Ro">2015</a> presentations, with real-world examples on how to use the email sending and receiving capabilities of SES. Like many other AWS products, SES offers a <a href="https://aws.amazon.com/ses/pricing/">free tier</a>.</p> <p> If you’re ready to dive in and start your migration, we have put together a list of resources to get you up and running with SES.</p> <ul> <li> If you send emails through an SMTP interface, check out our&nbsp;<a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-smtp.html">SMTP endpoints</a>.</li> <li> If you send emails through a web API, take a look at the <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-api.html">SES API</a>. You can interact with the SES API <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/query-interface.html">directly</a> through HTTPS, or use one of the many AWS SDKs that take care of the details for you. AWS SDKs are available for <a href="http://aws.amazon.com/sdkforandroid/">Android</a>, <a href="http://aws.amazon.com/sdkforios/">iOS</a>, <a href="http://aws.amazon.com/sdkforjava/">Java</a>, <a href="http://aws.amazon.com/sdkfornet/">.NET</a>, <a href="http://aws.amazon.com/sdkfornodejs/">Node.js</a>, <a href="http://aws.amazon.com/sdkforphp/">PHP</a>, <a href="http://aws.amazon.com/sdkforpython/">Python</a>, and <a href="http://aws.amazon.com/sdkforruby/">Ruby</a>.</li> <li> If you are an API user, note that:<p></p> <ul> <li> Mandrill’s <a href="https://mandrillapp.com/api/docs/messages.JSON.html"><em>send</em></a> method corresponds to SES’s <a href="http://docs.aws.amazon.com/ses/latest/APIReference/API_SendEmail.html"><em>SendEmail</em></a><em>.</em></li> <li> Mandrill’s <a href="https://mandrillapp.com/api/docs/messages.JSON.html#method=send-raw"><em>send-raw</em></a> method corresponds to SES’s <a href="http://docs.aws.amazon.com/ses/latest/APIReference/API_SendRawEmail.html"><em>SendRawEmail</em></a><em>.</em></li> <li> There is no corresponding send_at parameter for SES – messages are queued for delivery when you make an email-sending call to SES.</li> <li> There is no need to specify async – SES API calls are inherently asynchronous.</li> </ul> </li> <li> If you process incoming email, we offer the ability to <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html">receive those emails through SES</a>. Through our inbound processing, you can save your emails to S3, receive SNS notifications, and perform custom logic using Lambda.</li> <li> To help you maintain good deliverability, we can automatically DKIM-sign your emails using <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html">Easy DKIM</a>. (You are also free to do that <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/manual-dkim.html">manually</a>.)</li> <li> SES offers a <a href="http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mailbox-simulator.html">mailbox simulator</a> you can use to test your application’s handling of scenarios such as deliveries, bounces, and complaints.</li> </ul> <p> We want your transition to be simple. If you have any questions, we welcome you to our <a href="https://forums.aws.amazon.com/forum.jspa?forumID=90">forums</a>, or you can <a href="https://aws.amazon.com/premiumsupport/">review our support options</a>.</p> <p> Welcome to SES!</p>