저는 SSMTP 설치 문제로 많은 어려움을 겪었습니다. 너무 많아서 여기에서 솔루션을 공유하기로 결정했습니다.
도커 컨테이너 안에 여러 개의 PHP 인스턴스가 있습니다. 각 인스턴스는 이메일을 보낼 수 있어야 하는데, 각 도커에 메일 서버를 설치하는 대신 SSMTP를 사용하여 이메일을 릴레이하도록 설정했습니다. SSMTP는 이메일을 exim docker(낸시/SMTP) 그러면 이메일이 전송됩니다.
(n * [PHP -> SSMTP]) -> EXIM
해당 문서에 따라 /etc/ssmtp/revaliases
설정 해야 했지만 /etc/ssmtp/ssmtp.conf
루트를 통해 이메일을 보낼 때만 작동하고 www-data
.
PHP 인스턴스와 ssmtp가 "mailhub"를 통해 호출하도록 연결된 도커의 이름을 바꿨습니다.
답변1
SSMTP는 프롬프트나 다른 메시지를 제공하지 않습니다 Cannot open mailhub:25
. 읽은 지 몇 시간 후SSMTP 소스 코드, SSMTP가 수행하는 기능을 재현하기 위해 가능한 모든 단계를 시도한 결과 마침내 발견했습니다...
사용하면 파일 권한으로 인해 액세스할 수 없습니다 www-data
./etc/ssmtp
SSMTP는 침묵합니다이에 대해서는 액세스할 수 없는 프로필 대신 기본 구성을 사용한다는 사실을 결코 알려주지 않습니다.
내가 해야 할 일은 문제를 해결하는 것뿐이었습니다.chmod 777 /etc/ssmtp /etc/ssmtp/*
참고: 내 구성 파일에는 비밀번호가 포함되어 있지 않습니다. 이 특별한 경우에는 보안에 별로 관심이 없지만 이러한 문제에 관심이 있는 기관에서는 777을 사용해서는 안 되며 아마도 640을 사용해야 합니다.
구성 테스트에 유용한 명령:
sudo -u root ssmtp -v [email protected] < mail.txt
sudo -u www-data ssmtp -v [email protected] < mail.txt
/usr/sbin/ssmtp -v [email protected] < mail.txt
mail.txt의 내용:
에서:[이메일 보호됨]
도착하다:[이메일 보호됨]
제목: 테스트 이메일
테스트 텍스트
답변2
권한이 없는 사용자를 메일 그룹에 추가할 수 있습니다.
usermod -aG mail <username>
/etc/ssmtp/revaliases에 별칭을 추가합니다.
<username>:[email protected]:mailhub.your.domain[:port]
이것은 매력처럼 작동합니다.
<username>
/etc/ssmtp/revaliases 없이는 작동하지 않습니다.
그리고다시 로그인하는 것을 잊지 마세요사용자가 시스템에 들어가십시오 (0n ubuntu 여야 함)
앞으로새로운 설정을 시도해 보세요. 왜인지는 모르겠지만 그런 것 같아요...