Domanda

Attualmente sto cercando di eseguire il debug di un sito Web basato su Elgg (non l'ho sviluppato) e vorrei inviare le e-mail direttamente dalla macchina di sviluppo locale (WinXP). Sto eseguendo WAMP con Apache 2.2.11 e PHP 5.3.0

Dopo alcune ricerche, la soluzione più semplice che ho incontrato sta usando fake sendmail per inoltralo al mio account GMail / app Google tramite SMTP e lascia che esegua l'invio. Il problema è che non ricevo alcun errore, ma l'e-mail non viene inviata.

Ecco cosa ho fatto:

  • Copia sendmail.exe e sendmail.ini in una sottocartella in WAMP
  • Configurato tramite sendmail.ini (le impostazioni di configurazione sono ok)
  • Modificato php.ini per aggiungere il percorso a sendmail.exe
    sendmail_path = " C: \ Programmi \ wamp \ bin \ sendmail \ sendmail.exe -t "
  • Commentato le impostazioni SMTP di Windows in php.ini
    ; SMTP = localhost
    ; smtp_port = 25
    ; sendmail_from = xxx@domain.com
    ; mail.force_extra_parameters =

Il file mail.log mostra quanto segue:

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

La mia ipotesi è che il problema è che l'opzione predefinita di Windows (per specificare il server e non l'utilità sendmail) non viene sostituita. In phpinfo () ottengo ancora SMTP - > localhost e smtp_port - > 25 , anche se le ho commentate.

Se qualcuno riuscisse a farlo funzionare, apprezzerei davvero un po 'di aiuto. A mio avviso, l'utilizzo di sendmail falso è molto più semplice rispetto all'installazione di un server di posta sul tuo computer.

Grazie!

P.S. Per favore, non suggerire PHPMailer e simili, perché devo usare la funzione mail (). Ecco come funziona Elgg.

È stato utile?

Soluzione

Alla fine l'ho fatto funzionare. Il problema era che PHP aveva un bug nell'analisi dei file .ini con spazi nel percorso (per sendmail). È stato corretto nella versione 5.3.0, ma il manuale non conteneva informazioni al riguardo.

Quindi, sì, è possibile usare sendmail con PHP su Windows: D.

Grazie a tutti per il vostro tempo!

Altri suggerimenti

Assicurati di avere il servizio SMTP in esecuzione sul tuo computer locale e che la porta SMTP (25) sia aperta.

Controlla i servizi (Run- > services.msc) e cerca Send Mail Transfer

Se non riesci a trovare SMTP nell'elenco dei servizi, devi installarlo: Aggiungere, Esegui > appwiz.cpl- > Aggiungi Rimuovi componenti di Windows- > IIS- > Dettagli- > SMTP

Non sono sicuro che ciò aiuti o meno, ciò che ero solito fare in questi scenari era configurare, visualizzare la mia macchina e impostarlo per ricevere e-mail dal pop ogni 5 minuti circa, in questo modo il mio ip / la macchina è stata autenticata contro il pop e se ho appena impostato il:

SMTP = localhost
smtp_port = 25

in php.ini, la funzione mail ha funzionato bene. Quindi nel tuo caso basta impostare le proprie prospettive in modo che funzionino con un pop e usare quel smtp in php.ini e, si spera, dovrebbe funzionare. Non ho testato che questo sarà GMail però.

  

P.S. Per favore, non suggerire PHPMailer e simili, perché devo usare la funzione mail (). Ecco come funziona Elgg.

... a meno che tu non stia utilizzando un plug-in che modifica questo comportamento:
http://community.elgg.org/pg/plugins/costelloc/ lettura / 16498 / phpmailer

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top