O postfix não transfere e-mails de formulários de contato do WordPress para minha conta do Gmail

5

No Ubuntu 16.04 VPS com LEMP no DigitalOcean eu tenho um site WordPress que tem um formulário de contato que criei com o Contact Form 7 (CF7).

Meu problema

Estou com um problema ao transferir e-mails do meu formulário de contato do WordPress (CF7) para o meu e-mail (Gmail).

Devo dizer, humildemente prefiro uma solução não-plugin .

Zona DNS da minha máquina

  1. A registro que contém o domínio.
  2. Cname registro contendo uma variante www. para o domínio.
  3. Três NS registram para associar solicitações de DNS ao meu domínio, com o meu IP e o aplicativo relevante em sua máquina.

Eu tentei adicionar MX registros, pela maneira automática da DigitalOcean de fazer isso (clicando no botão Add Gmail MX records na ferramenta de gerenciamento DigitalOcean DNS), e 5 MX registros foram adicionados, mas eu ainda tinha o mesmo erro depois que eu imediatamente tentei enviar um email de teste do WordPress (veja o erro abaixo).

Atualmente, a zona DNS não tem MX registros porque não tenho certeza se eles são necessários se tudo que desejo no contexto de e-mails é apenas enviar perguntas do formulário de contato do WordPress para minha conta do Gmail e ainda no mesmo estado com o mesmo erro.

Erro exato e tentativas de depuração:

Sempre recebo a seguinte mensagem de erro, dentro de uma caixa vermelha no formulário de contato:

  

Falha ao enviar sua mensagem.

Devido a este erro, nada é enviado para nenhum lugar (nem mesmo para a pasta Spam).

Tentando depurar isso, executei o seguinte código para criar um log para o Postfix:

touch /var/log/mail.log
  • Não há erros nos logs do Nginx.

As permissões são:

rw-r--r-- 1 root root

Mas nada é escrito neste log de erros após eu tentar enviar um e-mail de teste e falhar.

Reproduzindo meu problema:

  1. Crie um droplet DigitalOcean Ubuntu 16.04.
  2. Crie uma pilha do LEMP e execute um site do WordPress nela.
  3. sudo apt-get update && sudo apt-get upgrade postfix .
  4. Escolha a configuração "site da internet".
  5. Digite o domínio do site com o qual você trabalha.
  6. Instale o Formulário de Contato 7 no seu site WordPress e tente enviar um e-mail de teste para você mesmo.

Minha pergunta

O que causa esse problema?

Talvez eu possa tentar algo com o Postfix ou uma ferramenta alternativa que eu deva usar como sSMTP ? Eu prefiro uma ferramenta mínima para não conf. Eu enfatizo que eu não envio nenhum outro e-mail para o meu Gmail além daqueles que chegam no formulário de contato do WordPress, nem envio nenhum outro e-mail para qualquer lugar, desta máquina.

No passado, instalei o Postfix como descrito acima e não houve problemas. Se você tem alguma idéia do que verificar, quais detalhes devo fornecer, por favor, me diga e eu vou editar.

Atualizar

1) O arquivo /etc/postfix/main.cf é o padrão.

2) Saída de ps -efl | grep postfix :

5 S root      4611     1  0  80   0 - 16352 ep_pol 07:42 ?        00:00:00 /usr/lib/postfix/sbin/master -w
4 S postfix   4613  4611  0  80   0 - 16881 ep_pol 07:42 ?        00:00:00 qmgr -l -t unix -u
4 S postfix   4930  4611  0  80   0 - 16869 ep_pol 11:02 ?        00:00:00 pickup -l -t unix -u -c
0 S root      5201  5187  0  80   0 -  3236 pipe_w 12:19 pts/0    00:00:00 grep --color=auto postfix
    
por JohnDoea 09.03.2018 / 16:19

2 respostas

2

O problema parece vir do WordPress, forma a configuração do formulário de contato em particular, como o problema também aconteceu com sSMTP que alguns consideram uma ferramenta mais simples que o Postfix:

Quando eu deletei o formulário original e criei um novo, recebi uma mensagem verde dizendo que a mensagem foi enviada em um email de teste.

Aqui também, eu não recebi uma mensagem sequer no diretório Spam, mas pelo menos a resposta foi diferente e o problema original não teve nada a ver com o Postfix.

    
por JohnDoea 13.03.2018 / 11:29
2

De Como corrigir o formulário de contato do wordpress não enviando email com smtp :

Por que o WordPress não envia e-mails

O WordPress usa a função de correio PHP para enviar e-mails gerados pelo WordPress ou qualquer plugin de contato como o WPForms. No entanto, muitos servidores de hospedagem do WordPress não estão configurados para usar a função de email.

Além disso, para reduzir o spam, o seu provedor de e-mail verifica se o seu e-mail é originário do local do qual ele alega ser originário. Por exemplo, se o seu servidor de e-mail for yahoo.com, mas seu e-mail alegar que foi enviado pelo domínio de seu website, é provável que sua notificação de formulário seja bloqueada antes mesmo de chegar à pasta de spam.

É por isso que recomendamos o uso de SMTP para enviar e-mails do WordPress em vez de usar a função de correio padrão do PHP.

O SMTP (Protocolo Simples de Transporte de Correio) é uma maneira padrão do setor de enviar e-mails que usam o método de autenticação adequado para garantir a capacidade de entrega de e-mail.

Sete maneiras diferentes para o domingo

Este cabeçalho de seção é porque hoje é domingo e o artigo Como corrigir o formulário de contato do wordpress não enviando e-mails com o smtp lista Sete maneiras diferentes de configurar o SMTP:

  1. WP Mail SMTP: Configuração SMTP
  2. Gmail ou G Suite
  3. SendGrid
  4. Mailgun
  5. carimbo postal
  6. WP SES
  7. SparkPost

Configuração SMTP

Para mim, estou usando o método mais simples para ter cron mensagens de erro por e-mail e relatórios de backup diários: Backup da configuração do Linux, scripts e documentos para o Gmail .

Para resumir as etapas:

sudo apt install ssmtp
sudo apt install sharutils

Você também precisa instruir o Gmail para permitir acesso menos seguro a você mesmo para aceitar e-mails. Está documentado na minha resposta acima.

Seu arquivo de configuração para ssmtp DEVE ser alterado. Aqui está o meu:

$ sudo cat /etc/ssmtp/ssmtp.conf
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.

# November 17, 2017.
# Required for cron to e-mail backups as per Ask Ubuntu answer:
# https://askubuntu.com/questions/917562/backup-linux-configuration-scripts-and-documents-to-gmail/922493#922493

#root=postmaster
[email protected]

# The place where the mail goes. The actual machine name is required no 
# MX records are consulted. Commonly mailhosts are named mail.domain.com
#mailhub=mail
mailhub=smtp.gmail.com:587

[email protected]
AuthPass=WinEunuuchs2UnixPassword
UseTLS=YES
UseSTARTTLS=YES
#Debug=YES

# Where will the mail seem to come from?
#rewriteDomain=
rewriteDomain=gmail.com

# The full hostname
hostname=alien

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
FromLineOverride=YES

Altere as linhas acima para o nome da sua conta do Gmail, senha e nome do computador:

[email protected]
[email protected]
AuthPass=WinEunuuchs2UnixPassword
hostname=alien

Note que WinEunuuchs2UnixPassword é sua senha do Gmail, não sua senha do Linux. Para obter seu hostname use echo $HOSTNAME .

Siga os links no artigo do WordPress.

Os links no artigo do WordPress no primeiro link acima devem ser seguidos para configurar o gmail. Consulte apenas o meu link para uma visão geral básica.

    
por WinEunuuchs2Unix 11.03.2018 / 17:05