无法使用 udev 和 msmtp 发送自动邮件

无法使用 udev 和 msmtp 发送自动邮件

我正在尝试编写一个脚本,以便在 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}'"

相关内容