Казалось бы, и при чём тут перл?.. :)#!/bin/sh
fbase64() { recode ..u8/b64; }
base64() { echo "$1" | fbase64; }
sendmail="/usr/sbin/sendmail"
to="gnu@domain1.org"
from="my@domain2.ru"
attachment="/path_to/file.tar.gz"
subject="Здесь размещаем тему письма."
data="<p>Здесь<br>Можно разместить текст сообщения.<br></p>"
boundary='simple boundary'
( cat <<EOF;
To: $email_to
From: $email_from
Subject: =?UTF-8?B?`base64 "$subject"`?=
Content-Type: multipart/mixed; boundary="$boundary"
This is a multi-part message in MIME format.
--$boundary
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: base64
`base64 $data`
--$boundary
Content-Type: application/octet-stream; name="$attachment"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="$attachment"
EOF
fbase64 <"$attachment"
) | $sendmail -t -oi