SSMTP não enviando e-mails “Não é possível abrir o mailhub: 25” (tldr: permissões de arquivo quando o usuário é www-data)

1

Lutei muito - consertando um problema com minha instalação do SSMTP, então decidi compartilhar a solução aqui.

Eu tenho várias instâncias de php dentro de contêineres do Docker. Cada instância deve ser capaz de enviar e-mails, mas em vez de instalar um servidor de e-mail em cada janela de encaixe, configurei-os para usar o SSMTP para retransmitir e-mails. O SSMTP enviará e-mails para uma janela de encaixe do exim ( namshi / smtp ), que enviará e-mails.

(n * [PHP -> SSMTP]) -> EXIM

Eu tive que definir /etc/ssmtp/revaliases e /etc/ssmtp/ssmtp.conf de acordo com seus documentos, mas funcionou apenas quando eu estava enviando e-mails por meio do root, mas não com o PHP que está trabalhando com www-data .

Eu renomeiei as janelas de encaixe vinculadas para que as instâncias do php e ssmtp as chamassem por "mailhub".

    
por Charaf 14.03.2017 / 15:13

1 resposta

5

O SSMTP NÃO estava dando nenhuma dica ou nada, exceto Cannot open mailhub:25 . Depois de HOURS ler código-fonte SSMTP , tentando todas as etapas possíveis para reproduzir o que o SSMTP estava fazendo, eu finalmente encontrei ...

Ao usar www-data , /etc/ssmtp não pôde ser acessado devido a permissões de arquivo. O SSMTP é SILENT sobre isso e nunca informa que você usa sua configuração padrão em vez de um arquivo de configuração inacessível.

Tudo o que eu precisava fazer para corrigir isso era: chmod 777 /etc/ssmtp /etc/ssmtp/*

OBSERVAÇÃO: meus arquivos de configuração não contêm senhas e eu não me importo com segurança neste caso em particular, mas qualquer entidade que esteja preocupada com esses problemas não deve usar o 777, mas pode ser o 640.

Comandos úteis para testar sua configuração:

Conteúdo do mail.txt:

From: [email protected]

To: [email protected]

Subject: test email

test text

    
por 14.03.2017 / 15:13