전자 메일이 파이프되는 (cpanel에서 전자 메일로 전달되는) 셸 스크립트를 작성하려고합니다.CPanel Linux에서 쉘 스크립트로 이메일 보내기, 구문
그러면 쉘 스크립트는 curl을 사용하여 전체 전자 메일을 URL에 게시합니다.
curl -d "param=$1" http://localhost/stuff/
을 그리고 전진은 다음과 같습니다 :
스크립트는 다음과 같습니다이는 노력 종류의
|/home/usr/script/curlthis.sh
.
말풍선이 URL에 성공적으로 게시 되더라도 이메일이 반송됩니다. (전자 메일의 일부분 만 게시되는 것처럼 보이지만 100 % 확신하지 못합니다.)
표준 입력란을 읽지 않아 전자 메일이 반송되는 것으로 들었지만 왜해야하는지 잘 모르겠습니다. 왜 내가 $ 1을 쓸 수 없습니까?
파이프의 전체 내용을 읽은 다음 (말풍선을 사용하여 게시) 어떻게 메일 서버가이 파이프를 다시 수신하지 못하게 할 수 있습니까?
#!/bin/bash
m=$(cat -)
escapedm="$(perl -MURI::Escape -e 'print uri_escape($ARGV[0]);' "$m")"
curl -silent -G -d "param=$escapedm" http://localhost/stuff/ 2>&1 >/dev/null
이 부분 : 여기 아래의 대답을 사용
는편집
내가 생각 해낸 것입니다
2>&1 >/dev/null
이 오싹 할 정도로 중요하다. stdout/err을 null로 리디렉션하지 않으면 어떤 이유로 든 이메일이 반송됩니다.