Script Shell para Enviar Correo Masivo desde Terminal

El archivo ha sido modificado por razones de seguridad les agradecería mucho me ayudaran a explicar un poco de el significado de las líneas que conforman este script. Seguramente a algunos les servirá.

Se que es muy claro en algunas líneas pero no entiendo la parte en la que se integra a OpenLDAP, y lo de MIME (PERL).

Muchas gracias y Saludos!

#!/bin/sh
export export LANG=en_US
from=$1
text=$2
subject=$3
server=$4
if [ "$#" == "5" ]; then file1=$5; fi

if [ "$#" == "0" ]; then
        echo ""
        echo ""
        echo "./envio.sh from <archivo> <subject> <server> [adjunto]"
        echo ""
        echo "from             remitente del mensaje"
        echo "archivo          archivo texto plano con el cuerpo del mensaje"
        echo "subject          asunto del mensaje"
        echo "server           1 o 2"
        echo "adjunto          archivo para adjuntar (opcional)"
        echo ""
        echo ""
        echo "ejemplo:"
        echo "          ./envio.sh \"webmaster@zz.example.com\" aviso.txt \"Aviso importante\" 1"
        echo ""
        echo ""
        exit
fi

if [ -f $text ]; then
if [ "$server" == "1" -o "$server" == "2" ]; then
for i in `ldapsearch -x -b "dc=zz,dc=example.com" "maildrop=*mail$server.zz.example.com" -D "cn=Manager,dc=mm,dc=example.com" mail -w password|grep "mail:"|cut -f 2 -d " "`; do
to=$i
###                if [ "$to" == "fulanito.perez@zz.example.com" ]; then
echo $i;
(
echo 'X-Mailer: shell'
echo 'X-MimeOLE: shell'
echo 'From: '$from
echo 'Reply-To: '$from
echo 'MIME-Version: 1.0'
echo 'To: '$to
echo 'Subject: '$subject
echo 'Content-Type: multipart/mixed;'
echo ' boundary="------------080904020905020401020402"'
echo 'Status:   '
echo ''
echo 'This is a multi-part message in MIME format.'
echo '--------------080904020905020401020402'
echo 'Content-Type: text/plain; charset=us-ascii; format=flowed'
echo 'Content-Transfer-Encoding: 8bit'
echo ''
cat  $text
echo ''
if [ "$#" == "5" ]; then
if [ -f $file1 ]; then
echo '--------------080904020905020401020402'
echo 'Content-Type: application;'
echo ' name='$file1
echo 'Content-Transfer-Encoding: base64'
echo 'Content-Disposition: inline;'
echo ' filename='$file1
echo ''
perl -MMIME::Base64 -0777 -ne 'print encode_base64($_)' < $file1
fi
fi
#) >> mailss
)|/usr/sbin/sendmail  -oi -t
###                fi
done
else
echo "Server 1 o 2"
fi
else
echo "$text: el archivo no existe"
fi

Para entender la parte de ldap lee:

man ldapsearch

Lo de Perl es para enviar un adjunto, que debe estar codificado adecuadamente.

En todo caso, mejor que este script yo usaría comandos específicos (¡para eso están!) mucho más sencillos que esta solución casera:

man mail
man mpack

Quizás no es exactamente lo que buscas pero pudiera servirte un artículo que escribí:

"Cómo enviar mensajes de correo desde la terminal, usando EMail y Gmail"

http://sidd.homelinux.net/blog/index.php?post/2009/06/30/C%C3%B3mo-envia...

Saludos,
Sidd.