Difference between revisions of "CloudMail"
(22 intermediate revisions by 4 users not shown) | |||
Line 34: | Line 34: | ||
== System requirements == | == System requirements == | ||
− | 360Works CloudMail can run on any computer running FileMaker Pro | + | 360Works CloudMail can run on any computer running FileMaker Pro 12 or later, or FileMaker Server 12 or later. |
== Pricing == | == Pricing == | ||
Line 94: | Line 94: | ||
You must set up an AWS account. Click here for steps [[Amazon Web Services Account Set Up for CloudMail]]<br> | You must set up an AWS account. Click here for steps [[Amazon Web Services Account Set Up for CloudMail]]<br> | ||
* 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. <br> | * 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. <br> | ||
− | * Important: Before going into production mode you must change your geographic location on the AWS console home page | + | * <b>Important: Production mode is region specific. CloudMail currently only works in the US East(N.Virginia) us-east-1 region. Before going into production mode you must change your geographic location on the AWS console home page to this region</b> See [[Amazon Web Services Production Mode for CloudMail]] |
=== Optional steps === | === Optional steps === | ||
+ | ('''Important Note - Update 2024 -''' While setting up DKIM records is still optional, it's becoming increasingly common for services to auto-block emails that do not have DKIM set up. Please contact 360Works if you need help setting up DKIM for you emails). | ||
+ | |||
* 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. | * 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. | * 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. | ||
− | [ | + | [https://docs.aws.amazon.com/ses/latest/dg/send-email-authentication-dkim-easy.html Setting Up DKIM Records] |
* 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. | * 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. | ||
===Unsubscribe=== | ===Unsubscribe=== | ||
− | 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 | + | 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 <b>*NOTE*</b> The CloudMail Blacklist is <b>not</b> 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. |
+ | |||
+ | ===Personalized Messages=== | ||
+ | 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. | ||
+ | |||
+ | ==Policies on Sending Bulk Emails to GMail and Yahoo accounts== | ||
+ | |||
+ | In the first quarter of 2024, Gmail and Yahoo will be changing the requirements for email senders who send more than 5000 messages to their services in a single day. Any sender that doesn’t meet the new requirements, may have their emails silently filtered by either Gmail or Yahoo. | ||
+ | |||
+ | # Authenticate their email: Gmail and Yahoo will expect you to set up a DKIM for your sending email address. This means that the sending email address will have to come from a domain that you own. For instance, we own www.samplewebsite.com, you can verify ownership of that domain to send from sampleuser@samplewebsite.com. For instruction on setting up a DKIM for your sending email, go to [https://docs.aws.amazon.com/ses/latest/dg/send-email-authentication-dkim-easy.html] | ||
+ | # Enable easy unsubscription: Cloudmail allows for unsubscribe links. Make sure you use them by following our documentation here: http://docs.360works.com/index.php/CloudMail#Unsubscribe | ||
+ | # Ensure they’re sending wanted email: Google is going to start blocking email senders who exceed a certain spam rate. Google didn’t give a specific rate, but and AWS email indicated that any sending email the get reported as spa, from over .3% of recipients will start getting blocked. Make sure those unsubscribe links are easy to find at the bottom of your email. | ||
+ | |||
+ | If you need help authenticating your email sending address against a domain, please contact us at support@360works.com. | ||
+ | |||
+ | ==Creating HTML== | ||
+ | In CloudMail’s Campaign Settings, you can include your own personalized HTML content. | ||
+ | If you need a free HTML editor we recommend using [https://beefree.io/bee-free/ 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. | ||
+ | |||
+ | ==List-unsubscribe== | ||
+ | |||
+ | Modern email clients allow one-click unsubscribes through the inclusion list-unsubscribe headers, which display software unsubscribe buttons above the email. Starting with CloudMail 4.2, list-unsubscribe headers get added to all emails sent. It is required to [[http://docs.360works.com/index.php/CloudMail#Optional_steps configure DKIM]] for the list-unsubscribe functionality to work. Unsubscribe events triggered by the press of a list-unsubscribe button get labeled with the reason "list-unsubscribe." | ||
+ | |||
+ | [[File:UnsubscribeEvent.png|500px|]] | ||
+ | |||
+ | |||
+ | How the unsubscribe button appears for apple mail: | ||
+ | |||
+ | |||
+ | [[File:AppleUnsubscribeButton.png|500px|]] | ||
+ | |||
+ | |||
+ | How the unsubscribe button appears for Gmail: | ||
+ | |||
+ | |||
+ | [[File:GoogleUnsubscribeButton.png|500px|]] | ||
+ | |||
+ | |||
+ | |||
+ | ==Known Issues== | ||
+ | *<b>Multiple EC2 instances</b>- 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 . | ||
+ | |||
+ | *<b>AccessDeniedException</b> - 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. | ||
+ | |||
+ | *<b>Clicking on the "Unsubscribe" link inside the html preview of the campaign email results in a message to choose an application to open it</b> - 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. | ||
+ | |||
+ | *<b>Not getting all or any results</b> - This can happen if the CloudMail EC2 instance does not have an elastic IP. |
Latest revision as of 14:59, 20 June 2024
Overview
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:
- deliveries
- bounces
- complaints
- clicks
- views
- unsubscribes
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.
Demonstration mode
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
System requirements
360Works CloudMail can run on any computer running FileMaker Pro 12 or later, or FileMaker Server 12 or later.
Pricing
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.
Required steps
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: Production mode is region specific. CloudMail currently only works in the US East(N.Virginia) us-east-1 region. Before going into production mode you must change your geographic location on the AWS console home page to this region See Amazon Web Services Production Mode for CloudMail
Optional steps
(Important Note - Update 2024 - While setting up DKIM records is still optional, it's becoming increasingly common for services to auto-block emails that do not have DKIM set up. Please contact 360Works if you need help setting up DKIM for you emails).
- 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.
Unsubscribe
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.
Personalized Messages
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.
Policies on Sending Bulk Emails to GMail and Yahoo accounts
In the first quarter of 2024, Gmail and Yahoo will be changing the requirements for email senders who send more than 5000 messages to their services in a single day. Any sender that doesn’t meet the new requirements, may have their emails silently filtered by either Gmail or Yahoo.
- Authenticate their email: Gmail and Yahoo will expect you to set up a DKIM for your sending email address. This means that the sending email address will have to come from a domain that you own. For instance, we own www.samplewebsite.com, you can verify ownership of that domain to send from sampleuser@samplewebsite.com. For instruction on setting up a DKIM for your sending email, go to [1]
- Enable easy unsubscription: Cloudmail allows for unsubscribe links. Make sure you use them by following our documentation here: http://docs.360works.com/index.php/CloudMail#Unsubscribe
- Ensure they’re sending wanted email: Google is going to start blocking email senders who exceed a certain spam rate. Google didn’t give a specific rate, but and AWS email indicated that any sending email the get reported as spa, from over .3% of recipients will start getting blocked. Make sure those unsubscribe links are easy to find at the bottom of your email.
If you need help authenticating your email sending address against a domain, please contact us at support@360works.com.
Creating HTML
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.
List-unsubscribe
Modern email clients allow one-click unsubscribes through the inclusion list-unsubscribe headers, which display software unsubscribe buttons above the email. Starting with CloudMail 4.2, list-unsubscribe headers get added to all emails sent. It is required to [configure DKIM] for the list-unsubscribe functionality to work. Unsubscribe events triggered by the press of a list-unsubscribe button get labeled with the reason "list-unsubscribe."
How the unsubscribe button appears for apple mail:
How the unsubscribe button appears for Gmail:
Known Issues
- 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.