シェルでメール送信処理を実装

シェルでメール送信処理を実装

シェルスクリプトでメール送信処理を実装するには、いくつかの方法があります。
一般的に使われる方法は、mail コマンドや sendmail コマンドを利用する方法です。
以下にそれぞれの方法について説明します。

1. mail コマンドを使用する方法

mail コマンドは、Unix 系システムで一般的に使用されるメール送信ツールです。
メールサーバーが設定されている必要があります。
基本的な使用方法は次の通りです。

スクリプト例: send_email.sh
#!/bin/bash

# 送信先メールアドレス
TO="recipient@example.com"

# 件名
SUBJECT="Test Email"

# メール本文
BODY="This is a test email sent from a shell script."

# メール送信
echo "$BODY" | mail -s "$SUBJECT" "$TO"

このスクリプトでは、mail コマンドを使ってシンプルなメールを送信しています。
mail コマンドはメールの本文を標準入力から受け取るため、echo コマンドでメール本文を渡しています。

2. sendmail コマンドを使用する方法

sendmail は、メール転送エージェント (MTA) であり、メールの送信に使用されます。
sendmail は一般的に設定が複雑ですが、非常に強力です。

スクリプト例: send_email_with_sendmail.sh
#!/bin/bash

# 送信先メールアドレス
TO="recipient@example.com"

# 件名
SUBJECT="Test Email"

# メール本文
BODY="This is a test email sent from a shell script."

# メールヘッダー
{
  echo "To: $TO"
  echo "Subject: $SUBJECT"
  echo "Content-Type: text/plain; charset=\"UTF-8\""
  echo
  echo "$BODY"
} | sendmail -t

このスクリプトでは、メールのヘッダーと本文を標準入力として sendmail コマンドに渡しています。

  • t オプションは、メールの宛先をヘッダーから取得するために使用します。

メール送信の注意点

1. メールサーバーの設定:
上記のコマンドを使用するには、システムに適切なメールサーバーの設定が必要です。
例えば、sendmail や postfix などのメールサーバーが必要です。

2. 権限:
スクリプトを実行するユーザーがメール送信の権限を持っている必要があります。

3. セキュリティ:
メール送信に関するセキュリティ対策を講じることが重要です。
特に、スクリプト内に機密情報をハードコーディングしないようにしましょう。

これらのスクリプトを実行するには、実行権限を付与する必要があります。
次のコマンドで権限を付与できます。

chmod +x send_email.sh
chmod +x send_email_with_sendmail.sh

その後、スクリプトを実行することで、メールを送信できます。

./send_email.sh
./send_email_with_sendmail.sh

これで、シェルスクリプトからメールを送信する基本的な方法が実装できます。