Programadores PHP que trabalham em ambiente Windows as vezes sentem dificuldade em testar seus scripts de envio de email.
Isso se dá porque o Windows não tem uma função Sendmail como o Linux, que é o Sistema Operacional padrão em servidores de aplicação PHP.
Logo, alguns programadores alugam espaços em hosts baratos que permitem o envio de email para testarem suas aplicações.
Hoje irei ensinar uma maneira simples de testar essas aplicações de envio de email.
Primeiro precisamos baixar um programinha chamado Fake Sendmail, que pode ser baixado no endereço www.glob.com.au/sendmail/sendmail.zip.
Extraia o conteúdo do arquivo .zip para uma pasta.
Eu extrai na pasta C:\sendmail .
Agora vá na pasta que você extraiu o conteúdo do arquivo .zip e localize o arquivo sendmail.ini
Neste arquivo iremos configurar uma conexão SMTP com um servidor de email qualquer, ou seja, uma conexão para enviar emails.
Localize onde diz smtp_server= e após o sinal de igualdade (=) coloque o endereço SMTP do seu servidor. No exemplo usaremos o gmail, cujo o endereço SMTP é smtp.gmail.com
Então teremos smtp_server=smtp.gmail.com.
Localize onde diz smtp_port= e após o sinal de igualdade (=) coloque a porta na qual devemos nos conectar para obtermos uma conexão SMTP. O padrão da porta é 25, porém o gmail utiliza 465.
Então teremos smtp_port=465.
Localize onde diz auth_username= e após o sinal de igualdade (=) preencha com o seu usuário do serviço de email. No caso do nosso exemplo, utilizando gmail, seria usuario@gmail.com
Logo abaixo você encontrará auth_password=. Preencha com a senha da sua conta de email.
Salve o arquivo e feche-o.
Agora que o programa sendmail está configurado com sucesso, podemos testá-lo.
Abra o bloco de notas e digite o seguinte texto:
REM Teste de email
ECHO From: seuemail@servidor.com > %TEMP%\temp.mail
ECHO To: destiantario@servidor.com >> %TEMP%\temp.mail
ECHO Subject: Teset de envio >> %TEMP%\temp.mail
ECHO.>> %TEMP%\temp.mail
ECHO testando >> %TEMP%\temp.mail
ECHO blah blah.. >> %TEMP%\temp.mail
ECHO. >> %TEMP%\temp.mail
ECHO blah. >> %TEMP%\temp.mail
sendmail -t < %TEMP%\temp.mail
DEL %TEMP%\temp.mail
Substitua seuemail@servidor pelo endereço de email que você configurou no sendmail.ini e destinatario@servidor.com para onde o email de teste será enviado.
Salve o arquivo na pasta do sendmail como sendo teste.bat
Execute o arquivo e espere um pouco.
Se tudo deu certo, o e-mail chegará na caixa do destinatário.
Caso contrário, o sendmail criará um arquivo crash.txt na sua pasta.
Então, verifique se existe algum firewall ou anti-vírus bloqueando a aplicação sendmail.exe, a porta SMTP que foi configurada e se todos os dados foram inseridos corretamente no arquivo sendmail.ini.
Verifique também, no caso do Gmail, se a opção para conexão POP e IMAP está ativada (no seu gmail acesse configurações e depois encaminhamento e POP/IMAP).
Agora vamos configurar o PHP para funcionar junto com o sendmail.
Localize o arquivo php.ini na pasta do PHP.
Abra-o e localize a seção [mail function]
Nesta seção, comente todas as linhas (adicione ; no começo de cada linha), exceto a linha que queremos configurar, a linha que começa com sendmail_path.
Nela, configure um path de pasta para onde está o seu sendmail.exe, utilizando o parâmetro -t.
Como extraimos o sendmail.exe para a pasta C:\sendmail, então iremos configurar o path como sendo C:\sendmail.exe -t.
Esta configuração é uma string de configuração, precisando estar entre aspas duplas.
Portanto a nossa configuração da linha do sendmail_path ficará assim: sendmail_path = “C:\sendmail\sendmail.exe -t”.
Salve o arquivo php.ini e feche-o.
Se seu servidor (geralmente o Apache) estava rodando, precisamos dar um refresh nele para que ele aceite as novas configurações.
Desative e ative-o, reinicie-o, ou qualquer opção de refresh que ele possua.
E pronto, a função mail() do php já pode ser usada da sua máquina local.
Dúvidas, sugestões, reclamações e afins podem ser escritas no comentário desse post.
Elas serão respondidas através de reply no comentário e também via e-mail.
Loading ...
Comentários