添付するファイルの内部変数を定義する
#!/bin/sh export LC_ALL=C export LANG=ja_JP.UTF-8 # ------------------------------------------------------------------------------ # 内部変数定義 # ------------------------------------------------------------------------------ target_date=`/bin/date -d "0 days ago" '+%Y-%m-%d'` # 当日日付を設定 before_ymd=`date --date "1 day ago" "+%Y-%m-%d"` # 前日日付を設定 csv_filename=temp_user_${before_ymd}.csv csv_dir=/home/temp/test_data csv_file=${csv_dir}/${csv_filename}
メールの転送元と転送先アドレスと、メール文章本文を書きかえる
# ------------------------------------------------------------------------------ # メール関数定義 # ------------------------------------------------------------------------------ mail_data() { to_address={送信先アドレスを指定} echo "MIME-Version: 1.0 From:{送信元メールアドレスを指定} To: ${to_address} Subject: [test_data]【auto_mail】:${target_date} ### メールのタイトル Content-Type: multipart/mixed; boundary=\"---------${target_date}\" -----------${target_date} Content-Type: Text/Plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit {~メール文章をここに記述する~} -----------${target_date} Content-Type: application/octet-stream; name=\"${csv_filename}.zip\" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=\"${csv_filename}.zip\" " | nkf -j -m0 /bin/cat ${csv_file}.zip | /usr/bin/openssl enc -e -base64 echo "" echo "-----------${target_date}" }
メールに添付するCSVを作成する
# ------------------------------------------------------------------------------ # 添付csv作成 # ------------------------------------------------------------------------------ /usr/bin/nkf -s --overwrite /var/www/app/test_user/temp_user_${before_ymd}.csv #CSVファイル内を UTF-8へ変換(日本語の文字化けを防ぐ) cp /var/www/app/test_user/temp_user_${before_ymd}.csv ./ # 添付対象ファイルをカレントディレクトリへコピー cd ${csv_dir}; /usr/bin/zip -r ${csv_filename}.zip ./${csv_filename} # 添付対象ファイルを圧縮する
メール関数定義で作成した情報を配信する
# ------------------------------------------------------------------------------ # メール配信 # ------------------------------------------------------------------------------ mail_data | /usr/sbin/sendmail -t # sendmail機能を利用してメール送信
これでメール配信シェルが完成。
後はcrontabに登録して自動配信等で利用する。