Just resolved this. The CPanel configuration page for the email account says to use port 465. However, when connecting with discourse I had to use port 587. I believe 587 is the newer port used with TLS and STARTTLS.
Also, be sure to run ‘launcher rebuild app’. Running ‘launcher restart app’ ignored the configuration changes.