udevとmsmtpを使用して自動Eメールを送信できない

udevとmsmtpを使用して自動Eメールを送信できない

USBデバイスがマイコンピュータ(Arch Linux)に接続されたら、電子メールを送信するスクリプトを作成しようとしています。私が書いたコードは

#!/bin/bash
if [[ ! -z "$1" ]]; then
    echo "USB inserted at $(date) for $1 and $2" >> /home/user/commands/logs.log
    cd ~
    ip -4 addr | grep -oP '(?<=inet\s)\d+(\.\d+){3}' > /home/user/commands/testing.txt
    echo -e "Subject: Hello \n\nBody:usb inserted at $(ip -4 addr | grep -oP '(?<=inet\s)\d+(\.\d+){3}')\nthrough the mail" | msmtp [email protected]
fi

このスクリプトはipv4アドレスをメールで送信する必要があります。 USBプラグインを検出し、ログファイルとテストtxtファイルを作成します。

しかし、電子メールは送信されませんでした。メールを端末経由で別々にコーディングしましたが、うまくいくようです。ただし、コード内ではメールは実行されません。

msmtpが動作するように設定しました。ターミナルコマンドを使って直接確認しましたが、うまくいきます。しかし、スクリプトを通しては機能しません。

他のすべてのコマンドが実行されており、ファイルをインポートしています。

これは私のルールスクリプトです。

ACTION=="add",\
SUBSYSTEMS=="usb",\
ENV{DEVTYPE}=="usb_device",\
RUN+="/usr/local/bin/usbinserted.sh '%E{DEVTYPE}' '%E{DEVNAME}'"

関連情報