Linuxからメールを送信してみる

 会社でサーバ情報を携帯などにメールするのにBASHスクリプトを組んだんだけど、iPhoneのメールクライアントでは本文が改行されず、GMAILでは本文がnoname.txtとなる(--;)

PCのメールクライアントでは普通に表示されてたので放置してたのだけど、ちょっとスクリプトを弄る機会があったのでいろいろ試してみた。

結果としては不要なメールヘッダを書いてた事が原因でした(^^;)

 

入門bash 第3版

入門bash 第3版

 

 

 

作成したスクリプトのサンプル
---------------------------------------------------------

#!/bin/bash
VERSION=0.0
XMAILER="MKL MAIL SCRIPT"

mailSend() {
SUBJECT="$1"
FROM="$2"
TO="$3"
CC="$4"
BCC="$5"

cat <<_END_ | /usr/bin/nkf -j | /usr/sbin/sendmail -t
Return-Path: ${FROM}
From: ${FROM}
To: ${TO}
CC: ${CC}
BCC: ${BCC}
Subject: ${SUBJECT}
X-Mailer: ${XMAILER} ${VERSION}
MIME-Version: 1.0

メール本文
日本語もOKなはず

iPhoneメーラーで改行もちゃんとされる
Gmailでnoname.txtとならない
・・・はず


_END_
}

## メールアドレス情報
## 半角スペース区切りで複数のユーザにも送れるはず
## CCとBCCは必須じゃない
SUB="メール送信スクリプト"
FROM_MAIL="送信元メールアドレス"
TO_MAIL="送信先メールアドレス"
CC=""
BCC=""
RET=0

## サブルーチンの呼出し
mailSend "${SUB}" "${FROM_MAIL}" "${TO_MAIL}" "${CC}" "${BCC}"

## 処理結果の確認
if [ $? != 0 ]; then
RET=$?
echo "Mail Send Failed !"
fi

exit $RET

---------------------------------------------------------

 

注意点はCentOSなどをミニマムでインストールした場合にnkfがインストールされない事くらいかな。

それもyumでサクッとインストールしちゃえばOKですが(笑)