For those of you who use Epicor routing to send out invoice and statement emails to customers, what kind of email server are you using? We have this random email failure issue and it is like dealing with a blackbox. We have used Office 365, outgoing SMTP and so on…
We have O365 but we use Mailgun for sending emails out of Epicor. It works great for us. We can log in to the Mailgun website to see logs, bounces, opens, etc.
@Samm - we also use Exchange Online (O365) and realized that it was stopping our email output because it was ‘detecting’ a possible SPAM/Open Relay situation. We had to alter things a bit and set up a SMTP relay whose IP was specially whitelisted in Exchange Online.
Are these REST calls? Mailgun does have an API as does Twilio’s SendGrid. You can simplify the process by avoiding all the SMTP code. Like @lgraham says, these services take care of bounces, unsubscribes, validation, etc.
I have avoided a mail API because of the rate limits and I am not sure how those work with, for example, a batch of 60 invoices. If they have a rate limiter of 15 per second, we certainly wouldn’t want to have failure to send.
At one point, SendGrid had a 600 messages per minute but I think they got rid of that. Remember, this is REST to them and they handle all the SMTP on your behalf and staying compliant with SPF requirements (DSN lookups for example).
Wouldn’t you have to set up the internal SMTP as a relay to some sort of interface of theirs? I don’t know much about it, but I’d much rather go that route than deal with bounces and non-deliveries, etc.
The way I’ve used it (outside of Epicor) is that I create a SendGrid template at the service with place-holders for the various fields, then I just send a JSON payload. SendGrid merges the JSON and sends the message. (Yes, attachments can be sent this way too with limits as many MTA’s have limits)
I’ve suggested that Epicor take that SMTP work out of Kinetic, P21, etc and have a single notification service that the various products use. Why handle all the SMTP failures in every package synchronously? A notification service could do the actual sending of emails, handle retries, bounces, etc; add attachments to a repository like DocStar, SharePoint, etc.; and send a text/message when reports are ready with a link to the repository. The Epicor products could also query the service for history and status. The service could post back to the products to handle contact requests like unsubscribes or forget me (CANSPAM, GDPR, etc.).
IMHO, there are far too many places handle emailing in the products. Extract that logic out and refactor it into a service that all of the Epicor Products can use - including the routing. Just another unsolicited Wonsil thought.
I guess you can but it’s not necessary. I would prefer to just POST, take my 2XX status, and call it a day. Now it’s their problem. I just query for failures and update the users. Running STMP isn’t adding value to my company if we can be working on real business concerns instead.
If I could figure out a native configuration way in Epicor to do that (maybe part of company config?), that would be ideal. As far as I know, the configuration at the company level is with SMTP only, but perhaps I’m mistaken