সম্পূর্ণতার জন্য, আমি এখানে সম্পূর্ণ "কুরুচিপূর্ণ-তবে-এটি-কাজ করে" সমাধান পোস্ট করছি (সংশোধনীর সাথে, এটির চূড়ান্ত আকারে, এটি আরও বেশি লোককে ইমেল প্রেরণ করে পাশাপাশি একটি সংযুক্তি সরবরাহ করে):
cd "$(dirname "$0")"
working_dir=$(pwd) # switching to the folder this script has been started from
cvs_domain=mail.org
cvs_mail_server=mail.${cvs_domain}
cvs_port=25
cvs_sender=me@mail.org
cvs_recipients=(me@mail.org me@mail.com)
cvs_delimiter=-----nEXt_paRt_frontier!!VSFCDVGGERHERZZ@$%^zzz--- # MIME multi-part delimiter, do not change
{ echo HELO $cvs_domain; sleep 1
# set up the email (sender, receivers):
echo MAIL FROM:$cvs_sender; sleep 1
for r in ${cvs_recipients[@]}; do
echo RCPT TO:$r; sleep 1
done
echo DATA; sleep 1
echo From:$cvs_sender; sleep 1
for r in ${cvs_recipients[@]}; do
echo To:$r; sleep 1
done
echo Subject:Test for build; sleep 1
# build the mail structure, according to the MIME standard:
echo MIME-Version: 1.0; sleep 1
echo "Content-Type: multipart/mixed; boundary=\"$cvs_delimiter\""; sleep 1
echo --${cvs_delimiter}; sleep 1
echo Content-Type: text/plain; sleep 1
echo; sleep 1
echo Don\'t panic. This is only a test.; sleep 1
echo; sleep 1
echo --${cvs_delimiter}; sleep 1
echo "Content-Type: text/plain; name=\"test.txt\""; sleep 1
echo "Content-Disposition: attachment; filename=\"test.txt\""; sleep 1
echo "Content-Transfer-Encoding: base64"; sleep 1
echo; sleep 1
encoded_file=$( base64 ./change.log ) # encoding the contents of the file, according to the declaration above
echo "$encoded_file"; sleep 1
echo; sleep 1
echo --${cvs_delimiter}; sleep 1
echo .; sleep 1
echo QUIT
sleep 1; } | telnet $cvs_mail_server $cvs_port
কেউ বিলম্বের সাথে বেড়াতে বেছে নিতে পারে। এবং, (যা আমি মনে করি) এর জন্য আরও দৃ solution় সমাধানের জন্য আমি যেতে চাই expect(1)
।