ファイルを添付してメールシェルです。
Solarisで何かしてたなつい時代の物ですが優先度そのたヘッダを変えたりしたいときの参考に自分用メモの転記。
ここがポイント:Content-Type: multipart/mixed; boundary="--yama"
% cat file_send.sh
# ! /bin/sh
# set -x
thisdir=`dirname "$0"` # $thisdir ← このスクリプト自身のあるディレクトリ
ROOT="$thisdir"
BIN="$ROOT"
DATA="$ROOT"
LANG=ja
FILE_DIR=/path_to_file_dir
logfile=$DATA/report2.log
exec 2>>$logfile >&2
# date >&2
# set -x
GDT="/usr/local/bin/gnu_date"
BIGM=`$GDT +%Y%m%d`
TIME01=`$GDT +%Y%m%d%H%M`
TDATE=`date '+%Y%m%d'`
# DATE0=`$GDT -d "$BIGM 1 month ago" +%Y/%m/%d`
DATE0=`date '+%Y/%m/%d %H:00'`
CHK_FILE=filename.$TDATE.csv.zip
SUBJ="メール件名 "$BIGM""
### ----------------------------------------------------------------------------
### パラメータ
mail_to='宛先'
# mail_cc='cc宛先'
# mail_bcc='bcc宛先'
mail_from='送信元'
mail_err=エラー宛先'
mail_subj=$SUBJ
### ----------------------------------------------------------------------------#
### 情報取得 & メール送信
# cat <<EOF
euctojis <<EOF | mailx -t
To: $mail_to
CC: $mail_cc
BCC: $mail_bcc
From: $mail_from
Errors-To: $mail_err
Subject: $mail_subj
X-Mailer: $0
# Content-Type: text/plain; charset=ISO-2022-JP
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="--yama"
----yama
Content-Type: text/plain; charset=iso-2022-jp
本文を書く
----yama
Content-Type: application/octet-stream; name="$CHK_FILE"
Content-Disposition: attachment; filename="$CHK_FILE"
Content-Transfer-Encoding: x-uuencode
`uuencode $FILE_DIR/$CHK_FILE $CHK_FILE`
----yama--
EOF
### ----------------------------------------------------------------------------
### 実行済みマークして終了
exit 0
Linuxならgnu_date
はdate
でいける気がします。
uuencode
はyum install sharutils
でとれるらしいです。base64
でもいいようです。
参考:
メールヘッダの一覧
man mailx
uuencode uudecodeがない場合はbase64を使えばよいらしい | 駄文と書評
メールデータの構造 - takami_hirokiの日記
SMTPサーバのメール送信テストにmailxコマンドを使う | Developers.IO