Quando instalei meu primeiro WordPress em um Servidor Windows, descobri da maneira mais complicada que wordpress em windows não são 100% compatíveis na parte de envio de emails, ou seja, não enviam emails. Procurei em varios blogs de seo, tenologia, etc, mas finalmente encontrei a solução:
Por que o WordPress não envia emails estando hospedado em um Servidor Windows?
Esta biblioteca, originalmente, possui uma incompatibilidade com Servidores Windows, o que causa o problema no envio de mensagens.
Para corrigir isto, basta efetuar pequenas correções em um arquivo do WordPress
1 – Localize o arquivo wp-includes\class-phpmailer.php
Abra o arquivo e navegue até a linha com o seguinte código:
var $LE = "\n";
Altere o conteúdo desta linha para:
var $LE = "\r\n";
2 – Agora localize o seguinte conteúdo:
function AddrFormat($addr) { if(empty($addr[1])) { $formatted = $this->SecureHeader($addr[0]); } else { $formatted = $this->EncodeHeader($this->SecureHeader($addr[1]), \ 'phrase') . " <" . $this->SecureHeader($addr[0]) . ">"; } return $formatted; }
Altere TODO o conteúdo acima PARA:
function AddrFormat($addr) { return $this->SecureHeader($addr[0]); }
3 – Suba o arquivo para o servidor e teste.
Já ocorreu do servidor não enviar emails mesmo depois desta alteração. Percebi que ele não conseguia enviar pois o email de origem não existia.
Corrigi criando um email, e dizendo ao servidor para enviar a partir deste email.
Outra coisa interessante é que quando o wordpress envia emails para você ele deve enviar a partir de [email protected], e quando você clica em responder, se não prestar atenção, pode acabar respondendo para seu servidor e não para o cliente que enviou email através do formulário de contato. Veja como resolver isso abaixo:
4 – Bônus – Responder contato do wordpress para quem te enviou email:
Usando o contact form 7, veja como configurei o servidor:
Nos cabeçalhos adicionais existe o campo From: que é o email de quem está enviando, no caso o servidor está gerando um email a partir de contato para você.
No campo Reply-to ele preencherá o email da pessoa que está enviando o contato a você, então quando você clicar em Responder no seu email, o servidor entenderá que você deseja responder a pessoa que enviou o email de contato para você e não que deseja responder ao seu servidor de emails.
Espero que gostem deste tutorial.
Participem enviando comentários, dúvidas ou contribuições.
Obrigado
Eduardo Gasparetto