Search code examples
bashsendmail

Using sendmail from bash script for multiple recipients


I'm running a bash script in cron to send mail to multiple recipients when a certain condition is met.

I've coded the variables like this:

subject="Subject"
from="[email protected]"
recipients="[email protected] [email protected]"
mail="subject:$subject\nfrom:$from\nExample Message"

And the actual sending:

echo -e $mail | /usr/sbin/sendmail "$recipients"

The problem is that only [email protected] is receiving the email. How can I change this so all the recipients receive the email?

NOTE: The solution has to be with sendmail, I'm using jailshell and it seems to be the only available method


Solution

  • Try doing this:

    recipients="[email protected],[email protected],[email protected]"
    

    And another approach, using shell here-doc:

    /usr/sbin/sendmail "$recipients" <<EOF
    subject:$subject
    from:$from
    
    Example Message
    EOF
    

    Be sure to separate the headers from the body with a blank line as per RFC 822.