360Works CloudMail is a plug-in for sending outbound e-mail messages and monitoring e-mail interactions using Amazon Web Services.
Sending: CloudMail offloads the actual e-mail sending to a virtual machine set up in your Amazon Web Services (AWS) account. It queues the e-mail contents and distribution list(s) almost instantly, leaving your computer free for other tasks. The virtual machine then starts processing all of the actual e-mails. It removes duplicate addresses, removes anybody that has requested an unsubscribe, and then starts sending them via Amazon's Simple Email Services (SES) at whatever sending rate your AWS account is set up for (10 per second by default, but expandable to hundreds per second upon request).
Monitoring: CloudMail automatically takes care of unsubscribes. It also embeds tracking codes into the e-mail message that will allow your FileMaker database to see how many people viewed your message, and how many clicked a link in the message. Whenever you want, you can run a script to download activity related to your e-mail campaign. This will import the follow activity types into your FileMaker file:
You can run this script as often as you like, and you can also schedule it to run at regular intervals using FileMaker Server. Every time the script runs, it will only download new activity since the last time it was run.
You can use CloudMail in demonstration mode, as much as you want, for up to 10 recipients. After 2 hours of use, you will need to quit FileMaker and restart to continue using the demo. A limited privilege 360Works' Amazon Web Services (AWS) access key is already embedded into the demo, allowing you to start sending and monitoring emails instantly!
The 360Works access key is shared with other people using the demo. Therefore, it is possible that when you download the results of your test campaign, you will see the results of the last person to try the demo, if they did not download their test results. Also, keep in mind that if you do not download the results from your test, other people will see your results, including the e-mail addresses that you used for testing. This is normal behavior when using the 360Works shared access key. To prevent this from happening, be sure to download the results from your test campaign, or better yet, you can set up your own free AWS account and use that with CloudMail (Amazon Web Services Account Set Up for CloudMail).
These are the demonstration access keys, in case you type over or otherwise lose the ones that come with the demo file:
Access key: AKIAIMZPKY3OKOCVKJEQ Secret key: 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
Install and Reference Documentation
This document gives an overview of how to use CloudMail. Click here for the plugin functions reference document
360Works CloudMail can run on any computer running FileMaker Pro 12 or later, or FileMaker Server 12 or later.
There are two components of pricing for CloudMail: The cost of the plug-in itself, and the cost for Amazon Web Services.
The plug-in cost is $395 US.
Amazon's charges can vary over time (usually gradually decreasing). In addition, there is special introductory pricing for the first year after you open a new AWS account. At the time this document was written, in November 2015, the pricing is as follows:
|First year||Following years|
|Up to 62,000 emails per month||$0||$0|
|Emails beyond 62,000 per month||$1 per 10,000|
|Virtual machine hosting per month||$0||$9.50|
|Outbound messages per gigabyte||$0 for first gigabyte, $0.09 beyond that|
|Example pricing for 20 kilobyte messages|
|1,000 per month||$0||$9.50|
|10,000 per month||$0||$9.50|
|50,000 per month||$0||$9.50|
|100,000 per month||$3.89||$13.39|
|1,000,000 per month||$95.60||$105.10|
Moving to production
There are a few required and optional steps before sending your e-mail campaign to thousands of recipients.
You must set up an AWS account. Click here for steps Amazon Web Services Account Set Up for CloudMail
- When you set up a new AWS account, your e-mail sending is limited to 'sandbox' mode. In sandbox mode, your maximum sending rate is just 1 message per second, your maximum daily messages is limited to 200, and you can only send to verified recipients. Verifying a recipient is what you did when clicked the Amazon e-mail in your inbox to be able to send the quick start campaign. To send to additional recipients besides yourself, you can either 1) verify additional recipients using the Amazon Web Services SES console, or 2) request that your account be switched to production mode.
- Important: Before going into production mode you must change your geographic location on the AWS console home page (located in the top right corner, next to your name). See Amazon Web Services Production Mode for CloudMail
- Once your AWS account is put into production mode, your daily limits will be substantially increased. You can see these limits in the SES dashboard in the AWS Web Console. However, if you send large email campaigns, it may still not be enough. You can submit additional requests via the AWS web console to request higher limits, both in terms of maximum messages per second and maximum messages per day.
- It is highly recommended that you follow the process for domain verification in the AWS web console. This involves setting up DKIM records, which make it much less likely for your outgoing messages to be marked as spam by the recipients. DKIM allows Amazon to send e-mail through its own servers while having the receiving e-mail servers treat the message as if it arrived from your own company's email server.
- You can get the public IP address of your virtual machine by going to the Elastic Cloud Computing (EC2) section of the AWS Web Console. If you like, you can then create a record in your DNS server, such as 'cloudmail.mydomain.com' pointing to that IP address. You can then configure this DNS name in the CloudMail.fmp12 file, and that will cause all links in your outbound e-mails to point to this name instead of a default Amazon DNS name.
In order to add an unsubscribe link to your emails, add [UNSUBSCRIBE] to the body of your email. When you send it, CloudMail will replace the [UNSUBSCRIBE] with a link to an unsubscribe page. Please note that this is just a find and replace operation so if you just have [UNSUBSCRIBE] in the HTML then this will show the entire link in the body of your email. If you want the word Unsubscribe as a hyperlink in the body of the email, make sure to put [UNSUBSCRIBE] in an <a> tag like so: <a href="[UNSUBSCRIBE]">Unsubscribe</a> . Once this form has been filled out, the email address will be added to your CloudMail blacklist. This means that even if you have not removed the email from your campaign recipients, emails will not be sent to them. This will work with both html and plaintext emails. To remove an email from the CloudMail blacklist use CMRemoveFromBlacklist *NOTE* The CloudMail Blacklist is not the same as the AWS Suppression List. Amazon automatically adds email addresses to the AWS Suppression list when it has recently caused a hard bounce. You can remove addresses from the AWS Suppression list through the AWS console.
It is possible to send personalized messages with CloudMail. However, the CloudMail.fmp12 file is not currently set up to do this so you will either need to have CloudMail integrated into your own solution or modify the .fmp12 file. To accomplish this you will need do a few things. First, store your message template with placeholders for the information that you want to personalize such as the recipient names, address, etc. in a field. Next, create a loop that loops through your found set of intended recipients. The loop will need to call the Substitute script step for each placeholder, substituting in the personalized text and then storing the modified template in a variable. It will then need to call CMAddRecipient to add the current intended recipient to the recipient list. Next, it will need to call CMQueueMessage passing in the variable holding the personalized message text as the htmlMessage and/or plainTextMessage parameter, the subject, the fromAddress, and the campaign name. Be sure to use the same campaign for every iteration of the loop so that the results of the campaign are accurate.
In CloudMail’s Campaign Settings, you can include your own personalized HTML content. If you need a free HTML editor we recommend using BEEfree.io for beautiful, fast email creation. BEE has a free option available that requires no signup, but if you prefer to have more control and greater design selection there is a Pro option available as well.
Once you have your HTML created, simply copy and paste into the field. For more information, please see our Beefree article.
- Multiple EC2 instances- If you discover that you have multiple CloudMail EC2 instances running in your AWS account then this is most likely attributed to using different versions of CloudMail across different machines. Currently, versions 1.0 to 2.03 use different templates for the EC2 instance and thus when CMSetAmazon credentials is called, the currently running EC2 instance is terminated and the new one that corresponds to the version you are using is generated. Sometimes the termination process fails and results in multiple instances running. To avoid this, make sure that every machine that is going to use your AWS account to send mail via CloudMail is using the same version. This bug has been corrected in version 2.04 .
- AccessDeniedException - This typically happens when using an IAM account that does not have the correct permissions to use some of the API calls that CloudMail uses. If this is the first time accessing CloudMail, you must access CloudMail with keys assigned to a user that has administrative access. This allows CloudMail the permissions it needs to set itself up. Once this is done, a policy named "CloudMail_Policy" is created and can be attached to any IAM that is going to be used with CloudMail.
- Clicking on the "Unsubscribe" link inside the html preview of the campaign email results in a message to choose an application to open it - The Unsubscribe link is not designed to work within the preview. When in the preview, the Unsubscribe link is actual pointing to an internal resource that only be understood by an email client. Sending out the email will and clicking on the link in an email client will result in expected behavior.
- Not getting all or any results - This can happen if the CloudMail EC2 instance does not have an elastic IP.