Jak poslat mail skriptem shellu

Petr Wiedemann, 31. leden 2009

Následující skript uložit do souboru, např. jako mailfrompetr.sh, nastavit mu atribut pro spouštění a zavolat tímto způsobem: mailfrompetr.sh "tohle je predmet mailu" "tohle je obsah mailu" nekdo@nekde.cz

Parametr č. 2 může být název souboru. V takovém případě bude v textu mailu obsah tohoto souboru. Je snad každýmu jasný, že soubor musí obsahovat text. :)

#!/bin/bash
#
SND="/usr/sbin/sendmail -f pet.r@pdynet.net -t"
SUB=$1
MSG=$2
TO=$3
CAT=cat
if test -z "$TO"; then
  TO=pet.r@pdynet.net
fi
if test -f "$MSG"; then
$SND <<EOM1
From: pet.r@pdynet.net
To: $TO
Subject: $SUB
`$CAT $MSG`
EOM1
else
$SND <<EOM2
From: pet.r@pdynet.net
To: $TO
Subject: $SUB
$MSG
EOM2
fi

Odeslání souboru v příloze mailu

Pro odeslání přílohy ze skriptu můžeme zkombinovat programy uuencode a mailx. Následující příkaz zakóduje soubor priloha.txt pomocí BASE64 a tento výstup předá programu mailx. uuencode priloha.txt priloha.txt | mailx -s predmet_mailu pet.r@pdynet.net