2013-05-30 15 views
27

Ho bisogno di usare la funzione PHP mail() per inviare posta da localhost SMTP (usando Wamp, Xampp o ecc.).WAMP invia Mail usando SMTP localhost

qualcuno può dare un tutorial?

+0

Con xampp o wampp è necessario configurare mercury per l'invio di mail da localhost. Stai chiedendo la configurazione? – Ahmed

+0

Quello del techwheels funziona per me! ':' –

risposta

1

È possibile utilizzare questa libreria per inviare e-mail, se avere problema con XAMPP locali, WAMP ...

class.phpmailer.php, class.smtp.php scrivere questo codice nel file in cui la tua email chiamate di funzione

include('class.phpmailer.php'); 

    $mail = new PHPMailer(); 
    $mail->IsHTML(true); 
    $mail->IsSMTP(); 
    $mail->SMTPAuth = true; 
    $mail->SMTPSecure = "ssl"; 
    $mail->Host = "smtp.gmail.com"; 
    $mail->Port = 465; 
    $mail->Username = "your email ID"; 
    $mail->Password = "your email password"; 
    $fromname = "From Name in Email"; 

$To = trim($email,"\r\n"); 
     $tContent = ''; 

     $tContent .="<table width='550px' colspan='2' cellpadding='4'> 
      <tr><td align='center'><img src='imgpath' width='100' height='100'></td></tr> 
      <tr><td height='20'>&nbsp;</td></tr> 
      <tr> 
       <td> 
       <table cellspacing='1' cellpadding='1' width='100%' height='100%'> 
       <tr><td align='center'><h2>YOUR TEXT<h2></td></tr/> 
       <tr><td>&nbsp;</td></tr> 
       <tr><td align='center'>Name: ".trim(NAME,"\r\n")."</td></tr> 
       <tr><td align='center'>ABCD TEXT: ".$abcd."</td></tr> 
       <tr><td>&nbsp;</td></tr>     
       </table> 
       </td> 
      </tr> 
      </table>"; 
     $mail->From = "From email"; 
     $mail->FromName = $fromname;   
     $mail->Subject = "Your Details."; 
     $mail->Body = $tContent; 
     $mail->AddAddress($To); 
     $mail->set('X-Priority', '1'); //Priority 1 = High, 3 = Normal, 5 = low 
     $mail->Send(); 
1

è possibile inviare direttamente la posta da PHP mail function() se è stato specificato la porta del server smtp e SMTP in php.ini, in primo luogo chiedere al server di credenziali SMTP al vostro ISP.

SMTP = smtp.wlink.com.np //put your ISP's smtp server 

smtp_port = 25 // your ISP's smtp port. 

quindi basta riavviare il server Apache e inizierà a funzionare. Godetevi ...

34

Sembra impossibile includere tutte le parti nel mio post, invece, Io punto a tutorial necessari::

(dovrebbe funzionare su WAMP, XAMPP o altro ...)

+2

Ottima risposta e funziona. Solo per aggiungere a ciò, avevo bisogno di advanced -> ip ranges -> my computer, per deselezionare tutto sotto 'require SMTP authentication' dato che php mail() non ne ha nessuno disponibile. – realtimez

0

Se qualcuno di voi sono sempre errore come segue dopo aver seguito la risposta data dal AFWE Wef

Warning: mail() [<a href='function.mail'>function.mail</a>]: SMTP server response: 

550 The address is not valid. in c:\wamp\www\email.php 

Vai php.ini

; For Win32 only. 
; http://php.net/sendmail-from 
sendmail_from = [email protected] 

Inserisci [email protected] come si r ID e-mail che hai usato per configurare hMailserver davanti a sendmail_from.

il problema verrà risolto.

Test su server Wamp2.2 (Apache 2.2.22, php 5.3.13) su Windows 8

Se si sta anche ottenendo seguente errore

"APPLICATION" 6364 "2014-03-24 13:13:33.979" "SMTPDeliverer - Message 2: Relaying to host smtp.gmail.com." 
"APPLICATION" 6364 "2014-03-24 13:13:34.415" "SMTPDeliverer - Message 2: Message could not be delivered. Scheduling it for later delivery in 60 minutes." 
"APPLICATION" 6364 "2014-03-24 13:13:34.430" "SMTPDeliverer - Message 2: Message delivery thread completed." 

Potreste aver dimenticato di cambiare la porta 25-465

5

Ecco i passi per raggiungere questo obiettivo:

  • Scarica il sendmail.zip attraverso questo link

    • Ora estrarre la cartella e inserirla in C:/wamp /. Assicurati che questi quattro file siano presenti: sendmail.exe, libeay32.dll, ssleay32.ddl e sendmail.ini.
    • Apri sendmail.ini e impostare la configurazione come segue:

    • smtp_server = smtp.gmail.com

    • smtp_port = 465
    • smtp_ssl = ssl
    • default_domain = localhost
    • error_logfile = error.log
    • debug_logfile = debug.log
    • auth_username = [tuo_gmail_acc ount_username] @ gmail.com
    • AUTH_PASSWORD = [your_gmail_account_password]
    • pop3_server =
    • pop3_username =
    • pop3_password =
    • force_sender =
    • force_recipient =
    • host = localhost

    • Accedi al tuo account di posta elettronica. Fai clic sullo strumento Gear> Impostazioni> Inoltro e POP/IMAP> Accesso IMAP. Fai clic su "Abilita IMAP", quindi salva le modifiche.

    • Eseguire il server WAMP. Abilita ssl_module sotto il modulo Apache.

    • Successivamente, abilitare php_openssl e php_sockets in PHP.

    • Aprire php.ini e configurarlo come i seguenti codici. Fondamentalmente, devi solo impostare sendmail_path.

[mail function] 
; For Win32 only. 
; http://php.net/smtp 
;SMTP = 
; http://php.net/smtp-port 
;smtp_port = 25 

; For Win32 only. 
; http://php.net/sendmail-from 
;sendmail_from = [email protected] 
; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 
; http://php.net/sendmail-path 
sendmail_path = "C:\wamp\sendmail\sendmail.exe -t -i" 
  • Riavvia Wamp Server

Spero che questo sarà il lavoro per voi ..

+1

Ho seguito tutti i passaggi, ma il server di wamp ha smesso di funzionare dopo enable - ssl_module in Apache. –