2010-01-02 33 views
12

io uso l'ultima WAMP e ottengo questo quando provo ad inviare e-mail: consegnaInvio di e-mail con WAMP

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\wamp\www\main\createaccount.php on line 8 

messaggio non riuscito ...

Il messaggio:

$to = "[email protected]"; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 
if (mail($to, $subject, $body)) { 
    echo("<p>Message successfully sent!</p>"); 
} else { 
    echo("<p>Message delivery failed...</p>"); 
} 

Hai bisogno di scaricare anche un "server di posta"?

Per favore aiuto.

risposta

1

non è in esecuzione un server SMTP sulla vostra macchina, ma non c'è bisogno di. Basta impostare SMTP a un server smtp aperta, ad esempio:

ini_set('SMTP', 'smtp.yourisp.com'); 

Date un'occhiata alla vostra home page di ISP o http://www.e-eeasy.com/SMTPServerList.aspx per la lista dei server SMTP.

Se si dispone di un programma di posta elettronica desktop, è possibile utilizzare lo stesso indirizzo come si usa per la posta in uscita.

+0

thanksman, ha provato molti server non, ma ottengo lo stesso messaggio di errore, forse qualche altro programma corro porta uso 25;/ – Jorm

+0

è sicuri che si sta mettendo il 'ini_set' prima che la funzione' mail' e averti provato il server SMTP del tuo ISP? –

0

penso che il server di posta (SMTP) server di posta in uscita non è configurato nel file php.ini.

Date un'occhiata a questo:

http://email.about.com/od/emailprogrammingtips/qt/Configure_PHP_to_Use_a_Remote_SMTP_Server_for_Sending_Mail.htm

anche hotmail non consente di utilizzare i loro server di posta. Dovresti usare yahoo o gmail.

+1

Almeno Gmail richiede una connessione protetta SSL, quindi non è un'opzione con semplice 'mail()'. –

+0

@Tatu Ulmanen: Grazie :) Non penso che lo sappia, da quello che ricordo. –

0

Sei sicuro che su questi server sia installato un programma di posta? Se no, questo è il tuo problema. Ad esempio, XAMPP viene fornito con un programma di posta chiamato Mercury che è necessario avviare prima di poter inviare la posta attraverso il server.

14

Questo funziona per me e dovrebbe funzionare per voi: Utilizzare Fake Sendmail e un server di posta Webhost (ad esempio Godaddy, 1 e 1, ecc.).

1.) Scaricare lo zip sendmail e estrarlo in C: \ Wamp \ bin \ sendmail (ai fini del presente esempio).

2.) Modifica C: \ wamp \ bin \ sendmail \ sendmail.ini e impostare la seguente alle esigenze del server di posta (miniera sono al di sotto):

smtp_server=mail.yourdomain.com 
smtp_port=26 
smtp_ssl=none 
;default_domain=yourdomain.com 
[email protected] 
auth_password=smtppassword 
;pop3_server= 
;pop3_username= 
;pop3_password= 
;force_sender= 
;force_recipient= 

3.) Impostare il percorso di sendmail .exe nel tuo file php.ini.

[mail function] 
; For Win32 only. 
SMTP = 

; For Win32 only. 
sendmail_from = 

; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 
sendmail_path = "C:\wamp\bin\sendmail\sendmail.exe -t" 

4.) Riavviare Wampserver.

Si potrebbe avere successo con Gmail, ma ci sono un paio di modifiche in più per farlo funzionare. Preferisco usare il server di posta del webhost dove carico il mio codice.

+0

Esattamente quello che mi serviva per collegare il mio dev. ambiente con l'account GoDaddy reale. Molto apprezzato ! –

+0

+1 Tirando su un thread di 2 anni, ma questo mi ha appena salvato. – msanford

+0

QUESTO FUNZIONA! Grazie. Questo mi ha salvato. Tutto l'improvviso server Wamp64 smette di funzionare su localhost di sviluppo e questo mi ha salvato. – GunWanderer

0

Seguire questo articolo, funziona se si dispone di un account Gmail. o almeno qualsiasi account di posta elettronica in cui si conosce il server, la porta e questa roba.

Send Email From localhost

0

Ecco un'altra soluzione - WAMP send Mail using SMTP localhost


tenere a mente, ogni volta, dopo aver modificato php.ini,

è necessario riavviare WAMP

(!!!)

ps in php.ini, ho usato:

SMTP = localhost 
smtp_port = 25 
sendmail_from = [email protected] 

o se Oyu non posso modificare php.ini, provare ad inserire queste righe nello script php.

ini_set("SMTP", "localhost"); 
ini_set("smtp_port", "25"); 
ini_set("sendmail_from", "[email protected]"); 
+0

Questo non funziona. – Draken

Problemi correlati