Affects Version/s: 7.0.X, Master
After changing the credentials for their outgoing SMTP Server server, the nodes in the cluster attempt to send mail from different email addresses. It appears that the changes made in one node do not propagate to the others since one will send the message from the new SMTP server and the other will use the original. One work around is to manually change the SMTP server on each node, but this is not ideal.
The reason this happens is because we store a _session variable inside of MailServiceImpl to keep track of all the settings. This variable is cleared whenever the settings are updated, but no messages are sent to the other nodes telling them to also clear this variable when this happens.
Steps To Reproduce:
- Set up a cluster with 2 nodes
- Configure the email settings against an outgoing SMTP server under Server Administration -> Mail. In our case we were adjusting the User Name and Password.
- Use the attached script to test sending an email from the each node. Make sure the email is sent successfully from both nodes.
- Modify the user name so that it's no longer valid.
- Retest sending the emails.
Expected Result: The email engine will use the new credentials and the email will fail from both nodes, with an AuthenticationFailedException.
Actual Result: The email fails from node 1 but succeeds from node 2 since the previous credentials are still used in the 2nd server.