Help us understand the problem. What is going on with this article?

[bash] CentOS添付ファイル付きメール送信(sendmail)の実装

More than 5 years have passed since last update.

添付ファイル付きメールの実装

この実装が正解という訳ではありませんが、

uuencodeコマンドを使いたくなかった。
echo でメールヘッダを作りたくなかった。

というところだけは、守りましたw

環境

  • CentOS release 6.3
  • sendmail-8.14.4-8.el6.x86_64

実装

  • そんな難しいことはしてません。シンプルに。
#/bin/sh

# commands.
SENDMAIL=/usr/lib/sendmail
ECHO=/bin/echo
GZIP=/bin/gzip
CAT=/bin/cat
RM=/bin/rm

# attachment file info.
ATTACH_FILE=attachmail.txt
ATTACH_PATH=/tmp/$ATTACH_FILE

# mail head settings.
MAIL_BODY=/tmp/mail_body.txt
MAIL_FROM=xxx@abc.com
MAIL_TO=yyy@abc.com
MAIL_SUBJECT="TEST ATTACHMENT MAIL."
MAIL_BOUNDARY=`date +%Y%m%d%H%M%N`

# make attachment file (test data).
$ECHO "1,2,3,4,5" > $ATTACH_PATH
$ECHO "6,7,8,9,10" >> $ATTACH_PATH

# attachment compression.
cd /tmp
$GZIP $ATTACH_FILE

#make body.
$ECHO "this is Body." > $MAIL_BODY

# send mail.
$SENDMAIL -t << EOF
From: ${MAIL_FROM}
To: ${MAIL_TO}
Subject: ${MAIL_SUBJECT}
MIME-Version: 1.0
Content-type: multipart/mixed; boundary=${MAIL_BOUNDARY}
Content-Transfer-Encoding: 7bit

--${MAIL_BOUNDARY}
Content-type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

`${CAT} ${MAIL_BODY}`

--${MAIL_BOUNDARY}
Content-type: application/zip;
 name=${ATTACH_FILE}.gz
Content-Transfer-Encoding: base64
Content-Disposition : attachment;
 filename=${ATTACH_FILE}.gz

`${CAT} ${ATTACH_PATH}.gz | base64`

--${MAIL_BOUNDARY}--
EOF

$RM -fr ${ATTACH_PATH}.gz

以上です。

f81@github
Fringe81のエンジニアが頑張って執筆ちゅうです! Scala の修行を始めました。 みなさま、温かい目で見守ってください。
fringe81
Fringeは、最新のテクノロジーとプロフェッショナルによるサービスにより、社会課題に仮説を立てて市場に広げていくことで、数十年という長期的なスパンで価値を生み出し続け、より良い世界を創る集団です。 既存の領域に限らず、時流を読み、仮説を生み出し、テクノロジーの力で優れたサービスを生み出し続けます。
https://www.fringe81.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away