Epicor Email settings for Office365

We have just changed our e-mail from GroupWise (yep…one of the few with Novell ! ) to Office365 Outlook.
I was indicated to enter the new server, use SSL, and specify username and pw… but it does not work.
here is the settings:

Then here is the error we are getting on the server. The email was triggered when I was creating a new Maintenance request.

Detail error from server

Description: An error occurred while sending mail Program: Ice.Internal.SysTask.SendMailAction.dll Method: ProcessItem Line Number: 127 Column Number: 9 Server Trace Stack: at Ice.Internal.SysTask.SendMailAction.ProcessItem(MailQueue queuedItem) in C:\_Releases\ICE\RL10.2.600.0FW\Source\Server\Internal\SysTask\SendMailAction\SendMailAction.cs:line 127 at Ice.Internal.SysTask.SendMailAction.ProcessQueuedItems() in C:\_Releases\ICE\RL10.2.600.0FW\Source\Server\Internal\SysTask\SendMailAction\SendMailAction.cs:line 52 at Ice.Internal.SysTask.QueueProcessor`2.RunSystemTask() in C:\_Releases\ICE\RL10.2.600.0FW\Source\Server\Internal\SysTask\QueueProcessor\QueueProcessor.cs:line 60 at Ice.Hosting.SystemTaskCaller.RunSystemTask(Type systemTaskType) in C:\_Releases\ICE\UD10.2.600.9FW\Source\Framework\Epicor.Ice\Hosting\TaskCaller\SystemTaskCaller.cs:line 66 at Ice.Hosting.SystemTaskCaller.ExecuteTasks() in C:\_Releases\ICE\UD10.2.600.9FW\Source\Framework\Epicor.Ice\Hosting\TaskCaller\SystemTaskCaller.cs:line 47 at Ice.Services.Lib.RunTaskSvc.RunSystemTasks() in C:\_Releases\ICE\UD10.2.600.9FW\Source\Server\Services\Lib\RunTask\RunTask.cs:line 253 at Ice.Services.Lib.RunTaskSvcFacade.RunSystemTasks() in C:\_Releases\ICE\UD10.2.600.9FW\Source\Server\Services\Lib\RunTask\RunTaskSvcFacade.cs:line 104 at SyncInvokeRunSystemTasks(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at Epicor.Hosting.OperationBoundInvoker.InnerInvoke(Object instance, Func`2 func) in C:\_Releases\ICE\UD10.2.600.9FW\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 59 at Epicor.Hosting.OperationBoundInvoker.Invoke(Object instance, Func`2 func) in C:\_Releases\ICE\UD10.2.600.9FW\Source\Framework\Epicor.System\Hosting\OperationBoundInvoker.cs:line 28 at Epicor.Hosting.Wcf.EpiOperationInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) in C:\_Releases\ICE\UD10.2.600.9FW\Source\Framework\Epicor.System\Hosting\Wcf\EpiOperationInvoker.cs:line 23 at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) at System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContext request, Boolean cleanThread, OperationContext currentOperationContext) at System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext) at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult result) at System.ServiceModel.Dispatcher.ChannelHandler.OnAsyncReceiveComplete(IAsyncResult result) at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result) at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously) at System.ServiceModel.Channels.SecurityChannelListener`1.ReceiveItemAndVerifySecurityAsyncResult`2.InnerTryReceiveCompletedCallback(IAsyncResult result) at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result) at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously) at System.ServiceModel.Channels.TransportDuplexSessionChannel.TryReceiveAsyncResult.OnReceive(IAsyncResult result) at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result) at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously) at System.ServiceModel.Channels.SynchronizedMessageSource.ReceiveAsyncResult.OnReceiveComplete(Object state) at System.ServiceModel.Channels.SessionConnectionReader.OnAsyncReadComplete(Object state) at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result) at System.Net.LazyAsyncResult.Complete(IntPtr userToken) at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) at System.Net.Security._SslStream.ProcessFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security._SslStream.ReadFrameCallback(AsyncProtocolRequest asyncRequest) at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously) at System.ServiceModel.Channels.ConnectionStream.IOAsyncResult.OnAsyncIOComplete(Object state) at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e) at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(SocketError socketError, Int32 bytesTransferred, SocketFlags flags) at System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 

Maybe I am missing a setting ?

Thanks Pierre

We are required to use an internal mail relay with a connector until we upgrade to (2022) 11.2.xx I believe.
Something with TLS 1.2 handshake, you won’t get far with most printers and old version of Epicor.

1 Like

Example from

1 Like

Just making sure that the user that is marked over an Office365 User?


Your smtp settings looks the same as ours. I think our IT guy had to change some settings in Office 365 to get it working for us.


Would you mind asking him what he has changed in his settings ?

You can PM me if it is more convenient…



I have mine setup and pointing to out O365 server. For the SMTP server we used the value in the MX record in Microsoft 365 admin center under settings, domains select the domain then dns records then MX you should be able to select copy from there. for the port we still have 25, use ssl blank, Authenticate anonymously yes, all rest are blank.

Here is the link I used on how to setup

[How to set up a multifunction device or application to send email using Microsoft 365 or Office 365 | Microsoft Learn]

Be cautious - If Your Epicor Email account exceeds the O365 thresholds for SMTP use, they could flag your domain as a spammer and temporarily block all outbound Email.

Be very careful setting up any direct to Exchange Online email processing with SMTP Auth (username and password) MS has already started disabling it. It’s still available, but the direction they’re going is clear. We are still using an on-prem SMTP relay. More information here:

SMTP AUTH will still be available when Basic authentication is permanently disabled on October 1, 2022. The reason SMTP will still be available is that many multi-function devices such as printers and scanners can’t be updated to use modern authentication. However, we strongly encourage customers to move away from using Basic authentication with SMTP AUTH when possible. Other options for sending authenticated mail include using alternative protocols, such as the Microsoft Graph API.

You have the same settings as we do and they work for us too. We also have MFA enabled for that account. In O365 admin console, after you enable the MFA, create an app password and use that in Epicor instead of the account password.

Also, when you send the email (APR, BPM, code, etc.) make sure the From field matches with the email address you have in the settings. If it is a different one, you need to assign Send As permissions in O365 first.


I haven’t forgotten about you, our IT guy has been off sick. When he’s back on deck I’ll what settings he had to change.


When I send emails out of the PO Entry screen, all it is doing is sending the Epicor shortcut as a .sysconfig file. I guess that means that the SMTP settings are finally correct, but we were hoping to be able to send a PO as a PDF from that screen. Currently, we are print previewing it, saving it to a known location, then attaching it via email.

I will say that they have been using email templates and they just change the PO Number in the subject line.

How is everyone handling the requests of sending out emails from Epicor like attachments?