スポンサーリンク

添付するファイルの内部変数を定義する

#!/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に登録して自動配信等で利用する。

おすすめの記事