Technical Blog Post
Configuring Maximo for Use with Microsoft's Office 365 Email Service
[Note: Updated 12/12/2018 to add firewall authentication error to the troubleshooting section.]
Configuring Maximo for use with web- or rather, using the term du jour, cloud-based email services is not appreciably different from service to service. On this blog we've covered configuring Maximo to connect to both Google's GMail and Microsoft's Live.com. We'll cover this for Microsoft's Office 365 Email. This configuration is essential the same as Live.com. Additionally, we'll go over a few things that can go wrong with Maximo email configuration.
Office 365 Email Servers & Settings
Microsoft provides these here. It does not appear that these are configurable by the user.
Take Care of SSL
SSL is handled by the application server. Simple certificate instructions and caveats for BEA are here and Websphere are here. WebSphere has a nice "retrieve from port" mechanism. You should be able to import the certificate using the POP/IMAP server and port. An SSL certificate is typically not available via a STARTTLS port. For Office 365, see this example for obtaining the certificate.
The Three Amigos
We'll need three Office 365 email accounts:
maxadmin - our SENDFROM and SMTP administrator
maxlistener - the account the listener will skulk
maxuser - our intrepid service desk user
Send-side (SMTP) Configuration
Aside from the usual host/username/password, the starttls toggle needs to be flipped to true (ssl remains false, as is usually the case with starttls) and, just like with Live.com, the JavaMail port property (mail.smtp.port) needs to be added and set to 587.
Update the SendFrom Field in Communication Templates
It's been our experience that Microsoft Exchange configurations do not allow sending of email in which the from address is outside of its domain.
Add a User for Creating Tickets
Email Listener Configuration
Nothing unusual here. IMAP was used (security and workflow configuration not shown for brevity ... )
Create a Ticket / Receive an Acknowledgement
If Something Bad Happens: A Play in 3 Acts
Hopefully you don't have to read this far ... but if you do, hopefully it's only for informational purposes.
When troubleshooting email related problems, it's always helpful to add or set the JavaMail debug property under System Properties to true. This will show the conversation between that API and your email server.
1) If the mail.smtp.starttls.enable property is false, something bad will happen:
530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM
DEBUG SMTP: got response code 530, with response: 530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM
DEBUG SMTP: EOF: [EOF]
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM
2) If the send from address is bogus (i.e. the address does not exist on the Exchange server) something bad will happen:
550 5.7.60 SMTP; Client does not have permissions to send as this sender
DEBUG SMTP: got response code 550, with response: 550 5.7.60 SMTP; Client does not have permissions to send as this sender
250 2.0.0 Resetting
com.sun.mail.smtp.SMTPSendFailedException: 550 5.7.60 SMTP; Client does not have permissions to send as this sender
3) If the mail.smtp.port is not set to 587, something bad will happen:
DEBUG SMTP: trying to connect to host "smtp.office365.com", port 25, isSSL false
26 Jun 2015 08:05:33:231 [ERROR] [MXServer] [CID-CRON-421] Failed to send messages.
javax.mail.MessagingException: Could not connect to SMTP host: smtp.office365.com, port: 25;
nested exception is:
java.net.ConnectException: Connection refused: connect
4) If you're receiving an authentication error please check with your network administration. Your MXServer host may not have have access to send/receive to/from to the email server / port.
A1 NO AUTHENTICATE failed.
javax.mail.AuthenticationFailedException: AUTHENTICATE failed.
As always, thanks for reading!