Os scripts abaixo devem ter permissão de execução para que possam funcionar. Em breve colocarei um manual sobre shell script, awk e sed, que são os programas mais utilizados para esse tipo de administração.
#!/usr/bin/awk -f # # Get first message in a mbox. # Author: Geilson Coutinho Figueiredo. # BEGIN { first = 0 } { if ($0 ~ /From /) { first += 1 } if (first > 1) { exit } print }
Esse script foi escrito em awk. Basta passar o nome da mbox como argumento, que ele retornará a primeira mensagem dessa mbox.
#!/bin/sh # # Get last message in a mbox. # Author: Geilson Coutinho Figueiredo. # awk '/From / {last = NR} END { print "tail -" NR - last + 1 " '"$1"'" }' $1 | /bin/sh
Esse script foi escrito em shell script. Basta passar o nome da mbox como argumento, que ele retornará a última mensagem dessa mbox.
#!/bin/sh # # Send mail with attachment. # Author: Geilson Coutinho Figueiredo. # Changelog: # if [ $# -ne 5 ]; then echo "Usage: `basename $0` mail-from mail-to subject bodyfile attachfile" exit 1 fi mailfrom=$1 mailto=$2 subject=$3 bodyfile=$4 attachfile=$5 export mailfrom mailto subject bodyfile attachfile if [ ! -f $bodyfile ]; then echo "Error: $bodyfile does not exist." exit 1 fi if [ ! -f $attachfile ]; then echo "Error: $attachfile does not exist." exit 1 fi { echo "From: $mailfrom" echo "To: $mailto" echo "Subject: $subject" echo "MIME-Version: 1.0" echo "Content-type: multipart/mixed; boundary=\"xxxyyyzzz${$}zzzyyyxxx\"" echo echo "If you are seeing this text, your mail reader is non-MIME conformant." echo "--xxxyyyzzz${$}zzzyyyxxx" echo "Content-Type: text/plain" echo "Content-Transfer-Encoding: base64" echo uuencode -m $bodyfile $bodyfile | egrep -v "begin-base|====" echo echo "--xxxyyyzzz${$}zzzyyyxxx" echo "Content-Type: application/octet-stream" echo "Content-Transfer-Encoding: base64" echo "Content-Disposition: attachment; filename=$attachfile" echo uuencode -m $attachfile $attachfile | egrep -v "begin-base|====" echo echo "--xxxyyyzzz${$}zzzyyyxxx--" echo "If you are seeing this text, your mail reader is non-MIME conformant." } | /usr/sbin/sendmail $mailto
Esse script é um pouco mais complexo que os anteriores. Consulta as RFC's 2822 e 1521, disponíveis em www.ietf.org, para saber como funciona o script. Espero em breve colocar um tutorial explicando como funcionam esses importantes protocolos: SMTP e MIME. Caso não tenhas o programa uuencode, ou este não tenha a opção -m (MIME), podes eliminar a linha contendo Content-Transfer-Encoding e trocar a linha que contém o referido comando por cat $attachfile. O único problema é que anexos binários não poderão ser enviados.