After decades of using cfmail and the SMTP service...
# cfml-general
m
After decades of using cfmail and the SMTP service on the webserver to send transactional email ("Your order has shipped", "Your report is ready", "Here is your password reset link", etc) , I am wanting to change to an off site, API solution. I would like to send email and occasionally texts, for multiple addresses in multiple domains and am looking for an API that is relatively easy to implement, works with and without templates but has some depth that can be explored as I become more familiar with it. Something that hopefully costs less that $50/mo. for sending less that 10k email a month (probably half that actually) Any suggestions from folks who are actually using an API that meets these criteria?
d
Twilio Sendgrid and Twilio SMS are both very affordable. For both I'm pretty sure you can pay less than $35 per month.
Here is the pricing for Twilio Sendgrid (email): https://sendgrid.com/pricing/?sg_product=ei $15/mo
r
d
Nice forgebox to the rescue.
m
Have you used them? I have looked at quite a few, so was looking for folks that have used them that could offer insight. Price is actually the least of my worries.
d
There are SDKs on forgebox for twilio too - fyi
I use twilio for both
r
I haven't I usually use mailgun and just enter the smtp settings in lucee
s
Amazon SES is the cheapest way to send tons of email. Mailgun and others tend to be a lot nicer and fancier but more expensve. If you don't send huge amounts then SES isn't necessary, but it's the best no-frills, budget move
☝️ 1
☝🏻 1
(for email, specifically)
m
My biggest issue is the "silent" bouncing/undelivered. Makes it hard to reliably send invoices. and I figure If I am going to have to parse smtp logs for status, I may as well spend the effort on implementing an API.
@sknowlton just need for transactional. I am liking that SNS service.
s
We use SES in conjunction with SNS to keep our email reputation low. Whenever a bounce comes in, it hits our API (via SNS) and we opt the user out of further emails
m
@Daniel Mejia Do you think Twilio/SendGrid checks off my boxes? How does it report bounces/undelivered?
p
We've used SendGrid and MailChimp in the past but currently use PostMark. I think they have a pretty robust platform.
p
Mailgun will help with your bounces etc
m
@sknowlton on a scale of 1-10, how easy to set up and get something simple off the ground? Harder stuff can come later as I learn the API.
s
SES by itself is super easy. If it's just for transactional stuff you probably don't need too much reputation management. We have some email services built into our apps where our customers can email THEIR customers and so we would get a lot of bounces. Integrating SNS into our API was not difficult but it was a few days of connecting dots as SES does require that you have some mechanism to handle opt outs...less necessary if you're not sending emails that are opt-outable
Twilio is also super easy though
p
Mailgun has a nice UI and provides good reporting aspects like Accepted, Delivered, Opened, Failed etc
👍 1
But really, all of these are pretty easy get setup
s
can't go wrong with mailgun either, they weren't quite as cheap but weren't too bad IIRC
d
sendgrid has the ui to manage//view all activity including bounces and undel. plus you can programmatically do what you want with webhooks
m
Thanks y'all! it is times like these that I REALLY miss working in an office with a team. Guess I know how I will be spending the next few evenings.
p
Yea pretty sure you can just pick your flavor of any of these platforms, they are all similar and can do what you are looking for. And you have 3 experts at least here lol 😉
d
yup
m
@sknowlton with SES do I also need to subscribe to other AWS services or can I so SES alone. I am basically trying to set this up so that I can use 1 account, to manage all my clients - with the goal to eventually automate all the reporting and maintenance stuff.
s
You don't subscribe to anything. You set up an AWS account and use it to sign your requests to AWS services and get billed based on usage
m
so basically set it up under mydomain.com and send email from yourdomain.com, thierdomain.com and thatdomain.com
s
The only non-usage fee for SES is if you want a static IP as the sender (which is useful if you send a lot to fight spam)
m
for all three suggestions, sendgrid, ses, mailgun can I implement based on my domain scenario above?
s
I believe so for SES. You tell SES which domains are allowed to send
j
AWS Simple Email Service
p
You can setup for your domain from all 3 @Michael Gillespie
r
+1 for Mailgun. Has good reporting on fails etc.
Copy code
local.mailSend = new http(method = "POST", charset = "utf-8", url = "<https://api.eu.mailgun.net/v3/#local.mailgunDomain#/messages>");			local.mailSend.addParam(name = "Authorization", type = "header", value = "Basic #ToBase64("api:"&local.apiKey)#");			local.mailSend.addParam(name = "from", type = "formField", value = "#local.from#");			local.mailSend.addParam(name = "to", type = "formField", value = "#<http://local.to#%22|local.to#">);
local.mailSend.addParam(name = "subject", type = "formField", value = "#local.subject#");			local.mailSend.addParam(name = "text", type = "formField", value = "#local.text#");			local.mailSend.addParam(name = "html", type = "formField", value = "#local.html#");			local.mailResult = local.mailSend.send().getPrefix();
r
@Michael Gillespie Sorry, getting back late to you. Just using SMTP with mailgun I just setup webhooks for notifications about fails, etc. Also, their web dashboard shows everything (deliver,fail)
Lots of good mail service options in this thread