Forum Discussion
Unable to send SMTP using mailx
I am trying to send SMTP email from the Linux mailx command; however, no matter how I try, the return from the server is always Authentication unsuccessful.
I did:
- Setup connector in Office 365 exchange to add my public IP addresses as trust
- Setup an Office 365 account with an Essential subscription
- Allow incoming & outgoing SMTP traffic over port 25 and 587 on my firewall for all Office365's IP addresses
I tried to run:
mailx -v -s "Now is `date`" \
-S smtp-use-starttls \
-S ssl-verify=ignore \
-S smtp-auth=login \
-S smtp=smtp://smtp.office365.com:25 \
-S from="myname@mydomain.com" \
-S smtp-auth-user="myname@mydomain.com" \
-S smtp-auth-password="password" \
-S ssl-verify=ignore \
myname2@mydomain2.com
And I always get the return below from the Office365 server.
535 5.7.3 Authentication unsuccessful [YQBPR0101CA0032.CANPRD01.PROD.OUTLOOK.COM]
smtp-server: 535 5.7.3 Authentication unsuccessful [YQBPR0101CA0032.CANPRD01.PROD.OUTLOOK.COM]
"/root/dead.letter" 11/388
. . . message not sent.
I tried to change the following variables:
- Substitute smtp.office365.com with resolved IP address
- Port 25 with port 587
- Substitute smtp-auth-user="myname@mydomain.com" with smtp-auth-user="mydomain.com\myname"
I also tried to send message with other applications such as Windows PowerShell, APC's PowerChute Business Edition, SMTP Diag Tools, my custom build Java app. And none of them working.
The only case I was able to get it work is thought Windows PowerShell with the exact command
$cred = Get-Credential
$from = "myname@mydomain.com"
$to = "myname2@mydomain2.com"
$body = “Just a test email”
$smtp = "smtp.office365.com"
$subject = "Test"
Send-MailMessage -To $to -From $from -Subject $subject -Body $body -BodyAsHtml -SmtpServer $smtp -UseSsl -Credential $cred -Port 25
If I change the port to 587 then it will stop working.
Is there anyone successfully manage to get mailx working with Office365 SMTP?
I found the resolution.
The issue is at the MX record's IP address was not allowed in the firewall.
Also I had to request for IP and domain white listing in the Spamhaus.
- Phillip NguyenCopper Contributor
Just tried with telnet mail from in Windows PowerShell and it is still not working!
- Phillip NguyenCopper Contributor
I found the resolution.
The issue is at the MX record's IP address was not allowed in the firewall.
Also I had to request for IP and domain white listing in the Spamhaus.
- michaelsmithhCopper Contributor
If you cannot send SMTP using Mailx, consider alternative SMTP Service Providers like Digitalaka™, Sendinblue, Mailgun, or SMTPget. These services offer reliable email delivery and robust features to ensure your emails reach their destination. Check your mailx configuration and ensure proper authentication and server settings. Switching to a dedicated SMTP service can simplify and enhance your email-sending process.