Pergunta

Atualmente estou tentando depurar um site baseado em Elgg (eu não desenvolvê-lo) e eu gostaria de enviar os e-mails diretamente da máquina de desenvolvimento local (WinXP). Estou correndo WAMP com Apache 2.2.11 e PHP 5.3.0

Depois de algumas pesquisas, a solução mais simples que eu me deparei está usando falso sendmail para enviá-lo para os meus aplicativos Gmail / Google conta via SMTP e deixá-lo fazer o envio. O problema é que eu recebo nenhum erro qualquer, mas o e-mail não está sendo enviado.

Aqui está o que eu fiz:

  • copiou o sendmail.exe e sendmail.ini para uma subpasta em WAMP
  • configurado via sendmail.ini (as definições de configuração estão ok)
  • Editado php.ini para adicionar o caminho para sendmail.exe
    sendmail_path = "C:\Program Files\wamp\bin\sendmail\sendmail.exe -t"
  • comentadas as configurações de SMTP do Windows em php.ini
    ; SMTP = localhost
    ; smtp_port = 25
    ; sendmail_from = xxx@domain.com
    ; mail.force_extra_parameters =

Os autos mail.log o seguinte:

mail() on [C:\Program Files\wamp\www\mail.php:9]: To: xxx -- 
Headers: From: xxx  Reply-To: xxx  X-Mailer: PHP/5.3.0

Meu palpite é que o problema é que a opção padrão do Windows (para especificar o servidor e não o utilitário sendmail) não é anulado. Em phpinfo() eu ainda obter as opções SMTP -> localhost e smtp_port -> 25, embora eu comentei-los.

Se alguém conseguiu obter esse trabalho, eu realmente aprecio alguma ajuda. Na minha opinião, usando falsa sendmail é muito mais simples do que instalar um servidor de correio na sua máquina.

Obrigado!

P.S. Por favor, não sugerem PHPMailer e similares, função porque eu Have a usar o mail (). Isso é como Elgg funciona.

Foi útil?

Solução

Eu já chegou a funcionar eventualmente. O problema era que PHP tinha um bug na análise de arquivos ini com espaços no caminho (para sendmail). Ele foi corrigido na versão 5.3.0, mas o manual tinha nenhuma informação sobre isso.

Então, sim, é possível usar sendmail com PHP no Windows:. D

Obrigado a todos por seu tempo!

Outras dicas

Certifique-se de Serviço SMTP em execução na sua máquina local e que porta SMTP (25) é aberta.

Tenha um controlo sobre os serviços (Run-> services.msc) e olhar para a Transferência Send Mail

Se você não consegue encontrar SMTP na lista de serviços, você deve instalá-lo: Adicionar, Run-> appwiz.cpl-> Adicionar ou remover o Windows Componentes-> IIS-> Details-> SMTP

Eu não tenho certeza se isso ajuda ou não, o que eu costumava fazer nestes cenários foi a instalação, outlook na minha máquina e tê-lo configurado para receber e-mails do pop a cada 5 minutos ou assim, de que maneira o meu ip / máquina foi autenticado contra o pop e se eu apenas definir o:

SMTP = localhost
smtp_port = 25

no php.ini, a função mail funcionou bem. Assim, no seu caso, basta definir o Outlook para trabalhar com um pop e da utilização que smtp no php.ini e espero que ele deve funcionar. Eu ainda não testei isso vai GMail embora.

P.S. Por favor, não sugerem PHPMailer e similares, porque eu tenho que usar a função mail (). Isso é como Elgg funciona.

... a menos que você está usando um plugin que altera esse comportamento:
http://community.elgg.org/pg/plugins/costelloc/ leia / 16498 / phpmailer

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top