특정 이메일 주소에서 이메일이 오면 해당 이메일을 해당 이메일 주소로 전달하고 다른 이메일 주소로 알림을 보내고 싶습니다.
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
일반적으로쉘 변수를 인용하십시오.
이 시도:
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]