Authenticated SMTP with Sendmail on Command Line

emaillinuxsendmailsmtpsolaris

we are sending emails using sendmail on the command line, with a command such as :

cat <email_contents> | sendmail -t

the <email_contents> contains fields such as sender, recipient etc.:

To: [email protected]
Subject: Testing
From: [email protected]

as well as a huge file, attachments etc.

we now need to use Authenticated SMTP (pass a login & password argument to authenticate against the SMTP server).

is there a way to do that with this method ? (using sendmail arguments or modifying the email_contents taking in consideration the following elements:

  1. NOT using mailx or any other mail client. we need to keep using sendmail from the commandline
  2. NOT amending the sendmail configuration files (sendmail.cf)

thanks again
regards,

Best Answer

As the manual says

"sendmail is not intended as a user interface routine".

The capabilities of the sendmail command to send mail stopped evolving well before SMTP authentication was invented.

When your environment is moving out of the stone-age and starts requiring newfangled technology like authentication and TLS, then you will need to get rid of your rocks to keep up.

Your options are exactly what you don't want to do, and you will need to upgrade your tools and practices to keep up with the times:

  • Either use a more advanced mail submission agent such as for example
    • mailx
    • the "drop in" sendmail command replacement ssmtp that does have smtp auth support.
    • or others.
  • install and configure a local MDA (like sendmail, postfix, exim etc.) to do the more advanced stuff that the sendmail command can't do for you and keep using the sendmail command