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!