sendmail
Postfix와 같은 서버에서 볼 수 있는 모든 오버헤드 없이 이메일을 보낼 수 있는 도구 가 있는지 궁금했습니다 . 저는 이미 Postfix를 사용하고 있어서 설정 방법 등을 알고 있습니다. 하지만 저는 sendmail
한 서버에서 Postfix를 실행하는 서버로 이메일을 보내기 위한 간단한 명령줄 도구를 찾고 있습니다 .
그래서...저는 클라우드에서 여러 머신 클러스터를 실행하고 있습니다. 기계 중 하나에는 Postfix가 설치되어 있었고 매력적으로 작동했습니다. 시스템 데이터베이스에 데이터를 저장하고 백그라운드 작업을 통해 해당 데이터를 가져와 해당 특정 시스템의 Postfix로 전달함으로써 어떤 프런트 엔드에서든 이메일을 보낼 수 있습니다. 그래서 우리 소프트웨어가 처리되었습니다. 데이터베이스가 작동하고, 메일 시스템 백엔드가 작동하고, Postfix가 작동한다고 가정해 보겠습니다. 모든 것이 제자리에 있으면 이메일이 예상대로 흐르기 시작합니다(우리는 이 중 두 가지를 가지고 있습니다). 설치하고 모두 잘 작동합니다) 훌륭합니다. )
이제... 이러한 클라우드 인스턴스는 CRON 작업과 궁극적으로 이메일을 보낼 수 있는(또는 적어도 시도할 수 있는) 다른 하위 시스템도 실행합니다. 기본적으로 이 컴퓨터에는 MTA가 설치되어 있지 않으므로 이 작업은 실패합니다.
내가 찾고 있는 것은 이 작업을 수행할 수 있는 방법입니다.
prompt$ sendmail [email protected]
From: [email protected]
Subject: Problem Report
Here we go, the problem is that I don't want Postfix on each machine.
.
sendmail
또한 Postfix를 실행하는 컴퓨터(현재 다운되었을 수 있음)에 연결할 수 없는 경우 이메일이 손실되지 않도록 설정하고 싶습니다 . 대신 파일에 저장됩니다. 예를 들어, /var/mail/root
.
물론 다른 서버를 운영하고 싶지는 않습니다. sendmail
나는 이메일을 보내야 할 때마다 실행되는 명령줄 도구가 되기를 원합니다 . 그게 다야.
Linux Ubuntu에도 비슷한 것이 있습니까?
답변1
내 생각에 당신은 Postfix 실행과 관련된 "모든 오버헤드"를 지나치게 과대평가하고 있는 것 같습니다. 이렇게 하면 문제가 해결될 것 같습니다. 중앙 메일러가 백업되는 동안 메시지는 대기열에 추가되어 배달됩니다. Postfix에서는 거의 구성이 필요하지 않습니다.
"더 간단한" 것을 원한다면 다음이 있습니다.빈 우편물, 그러나 여기에는 메시지 대기열을 처리하기 위해 "서버"를 실행하는 것이 포함되므로 새로운 소프트웨어를 배워야 한다는 점을 제외하면 실제로 postfix와 같습니다.
다음과 같은 것을 사용하여 직접 만들 수 있습니다.메일 전송 프로토콜, 메시지 대기열이나 다른 것을 처리하지 않지만 쉘 스크립트로 래핑하여 실패 시 메시지를 사서함에 저장할 수 있습니다. 그것은 다음과 같습니다:
cat >> $tmpfile <<EOF
From: [email protected]
Subject: Problem Report
Here we go, the problem is that I don't want Postfix on each machine.
EOF
if ! msmtp < $tmpfile; then
echo "Send failed; saving to mbox."
cat $tmpfile >> /path/to/mailbox
fi
위에 잠금을 추가하거나 Maildir 형식의 사서함 등으로 전송을 예약할 수 있습니다.