我将使用[-s filename]选项监视文件,当该文件获取数据时,使用适当的信息向我发送电子邮件。我搜索了网站并提出了一些选项,但没有点击给我。
我正在尝试执行以下操作来简单地测试“邮件”我也尝试了mailx
。用户未收到该电子邮件,并且mail
和mailx
提供的输出完全相同。
最终,我将使用mail或mailx命令编辑原始bash脚本,假设我可以使用它。
这就是我正在做的和输出 命令行在我点击时返回,输入。
感谢您对此的任何意见,我完全感激。
[user@somehost ~]$ echo "TEST" | mail -s subject user@mail.com
[user@somehost ~]$ send-mail: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
send-mail: warning: inet_protocols: configuring for IPv4 support only
postdrop: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
postdrop: warning: inet_protocols: configuring for IPv4 support only
答案 0 :(得分:2)
最好将inotifywait
用于您之后的活动(可能是CLOSE_WRITE
?)。
您需要使用SMTP服务器配置邮件程序,并且可能(希望)使用某些凭据。
我通常使用mailx
包中的heirloom-mailx
,并使用以下脚本:
#!/bin/false
function send_email {
# args are: subject [to] [from_name] [from_address]
# subject is required
# to and from_* are optional, defaults below
# stdin takes the message body... don't forget
# this function uses mailx from heirloom-mailx
local SMTP_SRVR="${YOUR_SERVER}"
local SMTP_USER="${YOUR_USERNAME}"
local SMTP_PASS="${YOUR_PASSWORD}"
local DEFAULT_TO="${YOUR_RECIPIENT}"
local DEFAULT_FROM_NAME="${YOUR_SENDER_NAME}"
local DEFAULT_FROM_ADDR="${YOUR_SENDER_EMAIL}"
if [ $# -lt 1 ]; then
echo "${FUNCNAME}(): missing subject (arg 1)..." >&2
return 1
fi
local SUBJECT="$1"
shift
if [ $# -lt 1 ]; then
local TO="${DEFAULT_TO}"
else
local TO="$1"
shift
fi
if [ $# -lt 1 ]; then
local FROM="${DEFAULT_FROM_NAME}"
else
local FROM="$1"
shift
fi
if [ $# -lt 1 ]; then
FROM="${FROM} <${DEFAULT_FROM_ADDR}>"
else
FROM="${FROM} <$1>"
shift
fi
mailx -s"${SUBJECT}" -r"${FROM}" -Ssmtp="${SMTP_SRVR}" -Ssmtp-auth-user="${SMTP_USER}" -Ssmtp-auth-password="${SMTP_PASS}" "${TO}"
return $?
}
然后您可以使用以下其他脚本中的上述内容(例如my_send_email.inc
):
#!/bin/bash
source my_send_email.inc
echo "Testing" | send_email "${MY_EMAIL}"