Como enviar e-mails pelo PHP em localhost (Linux/Ubuntu)

  • Last modified: 15 de fevereiro de 2019
  • Reading time: 2 mins

Estas instruções servem para usar o gmail (ou qualquer outro servidor de SMTP) para fazer a função mail() do PHP funcionar em localhost

Recentemente migrei do Windows para o Linux (Ubuntu 16.04) e confesso que apanhei para conseguir fazer o PHP enviar e-mails. Tentei tanto sendmail quanto postfix sem sucesso, então achei esta resposta na internet que me salvou. Ela ensina a instalar um pacote chamado ssmtp, leve e voltado exatamente para quem não precisa realmente de um servidor de e-mails, mas sim usar um servidor externo para testes e coisas rápidas. Os passos são:

  1. Instale o pacote usando sudo apt-get install ssmtp
  2. Edite o arquivo /etc/ssmtp/ssmtp.conf, comente a linha com mailhub e adicione as linhas abaixo. Não esqueça de trocar as marcações pelos seus dados de acesso:
    mailhub=smtp.gmail.com:587
    UseSTARTTLS=YES
    AuthUser=<YOUR-EMAIL>@gmail.com
    AuthPass=<YOUR-PASSWORD>
  3. Neste mesmo arquivo ative a linha FromLineOverride=YES que vem comentada por padrão;
  4. Edite o valor de sendmail_path no seu php.ini como na linha abaixo:
    sendmail_path = /usr/sbin/ssmtp -t
  5. Reinicie o apache.

Precisei configurar isso para desenvolver uma funcionalidade para WordPress e aqui pra mim funcionou muito bem, espero que também funcione para quem precisar. Outra alternativa para usar SMTP no WordPress é o plugin WP Mail SMTP, falei dele aqui há algum tempo.

Se tiver alguma sugestão, deixe aqui nos comentários. Boa sorte!

Este post tem 4 comentários

  1. samuel bueno

    estou usando ubuntu 16.04 fiz todas as configurações corretas mais não funcionou.

  2. Rafael Moreno

    Valeu! Deu certíssimo!! Já tava até desistindo!

    1. Felipe Elia

      Valeu Mário! Dei uma olhada e achei bem maneiro, vou testar 😀

Os comentários estão encerrados.