SSMTP는 "Cannot open mailhub:25"(tldr: 사용자가 www-data인 경우 파일 권한) 메일을 보내지 않습니다.

SSMTP는 "Cannot open mailhub:25"(tldr: 사용자가 www-data인 경우 파일 권한) 메일을 보내지 않습니다.

저는 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/ssmtpSSMTP는 침묵합니다이에 대해서는 액세스할 수 없는 프로필 대신 기본 구성을 사용한다는 사실을 결코 알려주지 않습니다.

내가 해야 할 일은 문제를 해결하는 것뿐이었습니다.chmod 777 /etc/ssmtp /etc/ssmtp/*

참고: 내 구성 파일에는 비밀번호가 포함되어 있지 않습니다. 이 특별한 경우에는 보안에 별로 관심이 없지만 이러한 문제에 관심이 있는 기관에서는 777을 사용해서는 안 되며 아마도 640을 사용해야 합니다.

구성 테스트에 유용한 명령:

mail.txt의 내용:

에서:[이메일 보호됨]

도착하다:[이메일 보호됨]

제목: 테스트 이메일

테스트 텍스트

답변2

권한이 없는 사용자를 메일 그룹에 추가할 수 있습니다.
usermod -aG mail <username>

/etc/ssmtp/revaliases에 별칭을 추가합니다.
<username>:[email protected]:mailhub.your.domain[:port]

이것은 매력처럼 작동합니다.

  • <username>/etc/ssmtp/revaliases 없이는 작동하지 않습니다.
    그리고다시 로그인하는 것을 잊지 마세요사용자가 시스템에 들어가십시오 (0n ubuntu 여야 함)
    앞으로새로운 설정을 시도해 보세요. 왜인지는 모르겠지만 그런 것 같아요...

관련 정보