Como todo bom desenvolvedor, temos que ter um ambiente de trabalho em nosso computador que chegue o mais próximo possível do que teremos no ambiente de produção final.

No meu caso eu andei precisando estudar sobre PostgreSQL (por sinal um excelente banco de dados) com PHP. Isso foi o mais fácil, agora tenho que estudar o famoso CMS/CMF Drupal, excelente por sinal.

O que isso tem a ver com esse post? Com um ambiente rodando PostgreSQL + PHP + Drupal só faltava uma coisa… o servidor SMTP! É isso mesmo, exemplo: após um usuário ser cadastrado no Drupal é enviado um e-mail de confirmação para ele, mas como isso seria enviado se meu ambiente de teste no windows não tem um servidor MTA sendmail disponível (Linux faz muita falta).

Com algumas pesquisas na internet encontrei a solução ideal! existe um tal de de sendmail criado por Byron Jones (http://www.glob.com.au) que na verdade envia e-mail autenticando em um servidor externo.. simples assim, sem precisar criar um servidor SMTP local (porque eu já havia tentado criar no IIS com windows 7 mas o IIS desse windows não tem MTA)!

A configuração é simples e a instalação é rápida:

  1. Faça o download aqui do sendmail.zip
  2. Coloque ele em algum lugar, exemplo “C:\sendmail\”
  3. Abra o arquivo sendmail.ini e edite-o conforme suas necessidades, nesse exemplo eu configurei para utilizar o smtp do Gmail:
    ; configuration for fake sendmail
    
    ; if this file doesn't exist, sendmail.exe will look for the settings in
    ; the registry, under HKLM\Software\Sendmail
    
    [sendmail]
    
    ; you must change mail.mydomain.com to your smtp server,
    ; or to IIS's "pickup" directory.  (generally C:\Inetpub\mailroot\Pickup)
    ; emails delivered via IIS's pickup directory cause sendmail to
    ; run quicker, but you won't get error messages back to the calling
    ; application.
    
    smtp_server=smtp.gmail.com
    
    ; smtp port (normally 25)
    
    smtp_port=587
    
    ; the default domain for this server will be read from the registry
    ; this will be appended to email addresses when one isn't provided
    ; if you want to override the value in the registry, uncomment and modify
    
    default_domain=domain.com
    
    ; log smtp errors to error.log (defaults to same directory as sendmail.exe)
    ; uncomment to enable logging
    
    error_logfile=error.log
    
    ; create debug log as debug.log (defaults to same directory as sendmail.exe)
    ; uncomment to enable debugging
    
    ;debug_logfile=debug.log
    
    ; if your smtp server requires authentication, modify the following two lines
    
    auth_username=alexsantos.linux@gmail.com
    auth_password=123456
    
    ; if your smtp server uses pop3 before smtp authentication, modify the
    ; following three lines
    
    pop3_server=
    pop3_username=
    pop3_password=
    
    ; to force the sender to always be the following email address, uncomment and
    ; populate with a valid email address.  this will only affect the "MAIL FROM"
    ; command, it won't modify the "From: " header of the message content
    
    force_sender=alexsantos.linux@gmail.com
    
    ; sendmail will use your hostname and your default_domain in the ehlo/helo
    ; smtp greeting.  you can manually set the ehlo/helo name if required
    
    ;hostname=
    
  4. Agora edite seu arquivo php.ini e altere a sessão “mail function”, coloque o caminho do binário em sendmail_path, ignore a observação acima da linha dizendo que essa linha é somente para ambiente Unix, segue um exemplo de configuração abaixo:
    [mail function]
    ; For Win32 only.
    ; SMTP=localhost
    ; smtp_port=25
    
    ; For Win32 only.
    ; sendmail_from = me@example.com
    ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
    sendmail_path = "C:\sendmail\sendmail.exe -t"
    ; Force the addition of the specified parameters to be passed as extra parameters
    ; to the sendmail binary. These parameters will always replace the value of
    ; the 5th parameter to mail(), even in safe mode.
    ; mail.force_extra_parameters =
    
  5. Reinicie seu servidor apache e pronto!

Abraços…….

Posts Relacionados