LinuxサーバーのローカルメールをDiscordにPOSTするスクリプトを作った

サーバー
スポンサーリンク

はじめに

こんにちは、みつばです。

Linuxで何かしらの作業を行ったあとメールを送ってくれるタイプのスクリプトがありますが、いちいちログインして確認するのも大変ですし何かいい方法がないかなぁ…と思ってたところ、こんな記事を見つけました。

サーバーからのメールをslackへ投稿する - Qiita
# はじめに (いいですよね。最近はメールとかで送っていた物もSlack通知を多用するようになってきました。 今まで処理終了時やアラートをGmailに送信していたのですが、利便性のた...

自分はSlackは使っていませんでしたが、記事中にあるWebHookはDiscordにも存在するため、上記ページにあったスクリプトをDiscord用に書き換えたものを作りました。

CentOS7とDebian 9 (Stretch)で動作確認済みです。

主に変更した部分はJSONの部分です(他の部分にはほとんど手を加えていません)。

使い方

基本的には上の記事と同じです。

1.Discordのサーバーを新たに作り、WebHookを登録

新たにサーバーを作ります。

サーバー設定>Webhooks>Webhookを作成

名前を決めて、チャンネルを設定(複数サーバーを管理している場合、チャンネルを分けておくと便利です)。

最後にURLをコピーしてスクリプトの13行目を書き換えて、対象のサーバーへアップロードします。

2.必要なライブラリのインストール

Debian(Ubuntu)では、apt install -y libemail-mime-perl libjson-perl curl

CentOSでは、yum install -y perl-Email-MIME perl-JSON curl でインストールができます。

3.エイリアスの設定

今回はこのスクリプトを”/usr/local/bin/mail2discord”へ配置しました。

スクリプトが実行できるようにchmod +xをして、” /etc/aliases ”の末尾に下記の一行を追記します。

root: "| /usr/local/bin/mail2discord"

最初の”root:”の部分は実際にメールが飛んでくるユーザーにしておいてください。

/etc/aliases の編集後にコンソールで newaliases を必ず実行してください。

サンプル

メールが来るとDiscordにこのような感じでメッセージが飛んできます。

おわりに

ブログ用のVPSとNASのメール管理が一つの場所で可能になったのでかなり便利になりました。

DiscordのBot制作も投稿するのみだったらWebhookで簡単に作れちゃうので、結構嬉しい機能だなぁと思いました。

コメント

%d人のブロガーが「いいね」をつけました。
タイトルとURLをコピーしました