如果有來自某些指定電子郵件地址的傳入電子郵件,我想將該電子郵件轉發到某個電子郵件地址,並向另一個電子郵件地址發送通知。
我嘗試過使用 formail 並直接從 procmail 運行 bash 腳本,但我無法讓它工作。
電子郵件應原封不動地轉發,但通知電子郵件應僅包含寄件者的電子郵件地址和主題(如果可能)(不是必需的)。
這是我對 procmail-recipe 的最新嘗試:
:0
* ! ^From:.*[email protected]
* ! ^From:.*[email protected]
* ! ^From:.*[email protected]
{ }
:0 E
{
:0 c
! [email protected]
:0 h
| /usr/local/bin/notify_mail.sh $FROM $SUBJECT
}
我的notify_mail.sh
:
#!/bin/bash
echo -e "Hi,\n\nNew e-mail has arrived:\n\nFROM: $1\nSUBJECT $2" | mail -s "$2" [email protected]
答案1
您的腳本應該像這樣工作,但是您沒有填充FROM
和SUBJECT
變量,並且通常應該引用您的 shell 變數。
嘗試這個:
0
* ! ^From:.*email@example\.org
* ! ^From:.*support@example\.com
* ! ^From:.*santa@northpole\.no
{ }
:0 E
{
:0 c
! [email protected]
FROM=`formail -rtzxTo:`
SUBJECT=`formail -zxSubject:`
:0 h
| /usr/local/bin/notify_mail.sh "$FROM" "$SUBJECT"
}
這個formail -rtzxTo:
習慣用語有點棘手,解釋如下:https://stackoverflow.com/a/50890026/874188
另請注意正規表示式中文字點之前的反斜線。
該腳本可能應該printf
更喜歡echo -e
.這裡沒有任何 Bash 特有的內容,所以我也冒昧地更改了 shebang。
#!/bin/sh
printf "Hi,\n\nNew e-mail has arrived:\n\nFROM: %s\nSUBJECT %s\n" "$1" "$2" |
mail -s "$2" [email protected]