|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Oct 2011
Messaggi: 10
|
PHPMailer: invio mail SMTP
ciao a tutti.
Premessa: sto creando un sito per la mia azienda per la raccolta di informazioni sugli acquisti interni. gli utenti inseriscono le loro richieste che vengono memorizzate e inviate ai loro responsabili tramite mail. Utilizzo per realizzare questo un ambiente LAMP. Nessun problema con Apache2 e MySql, ma con PHP non riesco ad inviare delle mail. Il mio server monta Debian Squeeze e NON è anche mail server. Ora nella mia pagina PHP carico la Classe PHPMailer precendetemente importata nel mio progetto <? //includiamo la classe PHPMailer require "phpmailer/class.phpmailer.php"; //istanziamo la classe $messaggio = new PHPmailer(); $messaggio->IsSMTP(); $messaggio->Host='Host SMTP'; //definiamo le intestazioni e il corpo del messaggio $messaggio->From='info@mittente.it'; $messaggio->AddAddress('info@destinatario.it'); $messaggio->AddReplyTo('info@mittente.it'); $messaggio->Subject='Prova.'; $messaggio->Body=stripslashes('Ciao!!!!'); //definiamo i comportamenti in caso di invio corretto //o di errore if(!$messaggio->Send()){ echo $messaggio->ErrorInfo; }else{ echo 'Email inviata correttamente!'; } //chiudiamo la connessione $messaggio->SmtpClose(); unset($messaggio); ?> e dopo aver inserito la credenziali che mi interessano non riesco cmq ad inviare mail. Il problema è che il server SMTP esterno su cui mi appoggio richiede Utente e password, che qui non so come inserire. Qualcuno mi può dare una mano per favore? |
![]() |
![]() |
![]() |
#2 |
Moderatore
Iscritto dal: Nov 2006
Messaggi: 21803
|
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX) Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000 |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Oct 2011
Messaggi: 10
|
Ciao grazie prima di tutto.
ho utilizzato la guida ma non riesco lo stesso ad inviare mail, non ho messaggi di errore particolari ma non ricevo sulla casella di posta nulla. Non vorrei avere problemi nell inclusione di PHP mailer, ho usato il require_once può essere corretto? |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
Devi aggiungere i parametri relativi all'smtp auth...
Codice:
$messaggio->SMTPAuth = true; $messaggio->Username = "utente"; $messaggio->Password = "password";
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
![]() |
![]() |
![]() |
#5 | |
Junior Member
Iscritto dal: Oct 2011
Messaggi: 10
|
Quote:
Ciao, ti lascio il codice del mio script require_once ("phpmailer/phpmailer.inc.php"); //caricarlo una sola volta nello script (poi potete inviare infinite email) //Dichiaro la classe PHPMailer $mail = new PHPMailer(true); $mail->IsSMTP(true); $mail->IsHTML(false); $mail->CharSet = ‘UTF-8′; $mail->Host = "mail.server.it"; $mail->SMTPDebug = 2; $mail->SMTPAuth = true; $mail->Port = 2525; $mail->Username = "alerts@dominio.it"; $mail->Password = "passwd"; $mail->Priority = 3;//priorità $mail->AddAddress("user@domionio.com");//destinatario $mail->SetFrom("alerts@dominio.it");//mittente $mail->Subject = "Here is the subject"; $mail->Body = "This is the message body"; $mail->Send(); ?> non riesco lo stesso ad inviare mail. Ho provato a salvare lo script separatamente e a chiamarlo con execute() da un altra pagina ma niente lo stesso.... |
|
![]() |
![]() |
![]() |
#6 | |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
Quote:
Comunque questo è l'esempio che c'è nella documentazione della classe e che, ti assicuro, funziona: Codice:
$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch $mail->IsSMTP(); // telling the class to use SMTP try { $mail->Host = "mail.yourdomain.com"; // SMTP server $mail->SMTPDebug = 2; // enables SMTP debug information (for testing) $mail->SMTPAuth = true; // enable SMTP authentication $mail->Host = "mail.yourdomain.com"; // sets the SMTP server $mail->Port = 26; // set the SMTP port for the GMAIL server $mail->Username = "yourname@yourdomain"; // SMTP account username $mail->Password = "yourpassword"; // SMTP account password $mail->AddReplyTo('name@yourdomain.com', 'First Last'); $mail->AddAddress('whoto@otherdomain.com', 'John Doe'); $mail->SetFrom('name@yourdomain.com', 'First Last'); $mail->AddReplyTo('name@yourdomain.com', 'First Last'); $mail->Subject = 'PHPMailer Test Subject via mail(), advanced'; $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically $mail->MsgHTML(file_get_contents('contents.html')); $mail->AddAttachment('images/phpmailer.gif'); // attachment $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment $mail->Send(); echo "Message Sent OK</p>\n"; } catch (phpmailerException $e) { echo $e->errorMessage(); //Pretty error messages from PHPMailer } catch (Exception $e) { echo $e->getMessage(); //Boring error messages from anything else! }
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
|
![]() |
![]() |
![]() |
#7 | |
Junior Member
Iscritto dal: Oct 2011
Messaggi: 10
|
Quote:
![]() devo essere io che sbaglio qualcosa a questo punto, ho provato la tua soluzione ma niente da fare questo il mio codice require_once("phpmailer/class.phpmailer.inc.php"); $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch $mail->IsSMTP(); // telling the class to use SMTP try { $mail->Host = "mail.server.it"; // SMTP server $mail->SMTPDebug = 2; // enables SMTP debug information (for testing) $mail->SMTPAuth = true; // enable SMTP authentication $mail->Host = "mail.server.it"; // sets the SMTP server $mail->Port = 2525; // set the SMTP port for the GMAIL server $mail->Username = "alerts@dominio.it"; // SMTP account username $mail->Password = "alerts"; // SMTP account password $mail->AddReplyTo('pcarioni@dominio.com', 'Paolo CARIONI'); $mail->AddAddress('ighisetti@dominio.com', 'Ivan GHISETTI'); $mail->SetFrom('alerts@dominio.it', 'Ivan Ghisetti'); $mail->Subject = 'PHPMailer Test Subject via mail(), advanced'; $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically $mail->MsgHTML(file_get_contents('corposito.html')); $mail->Send(); echo "Message Sent OK</p>\n"; } catch (phpmailerException $e) { echo $e->errorMessage(); //Pretty error messages from PHPMailer } catch (Exception $e) { echo $e->getMessage(); //Boring error messages from anything else! } dopo lo script ho inserito un alert a video che mi dice se è andato tutto a buon fine, e addirittura questo non compare, penso quindi che il codice non venga processato fino in fondo, ma si fermi da qualche parte durante il tentativo di invio della mail. Qualche idea?? |
|
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
Prova ad abilitare gli errori su php e vedere se ritorna qualcosa.
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
![]() |
![]() |
![]() |
#9 |
Junior Member
Iscritto dal: Oct 2011
Messaggi: 10
|
|
![]() |
![]() |
![]() |
#10 |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
All'inizio del tuo script metti
Codice:
error_reporting(E_ALL); Ma, così per sapere, quali versioni stai utlizzando di php e della classe PHPMailer?
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
![]() |
![]() |
![]() |
#11 | |
Junior Member
Iscritto dal: Oct 2011
Messaggi: 10
|
Quote:
![]() PHP: PHP 5.3.3-7+squeeze3 with Suhosin-Patch (cli) (built: Jun 28 2011 13:13:26) PHPMailer: versione 0.9 |
|
![]() |
![]() |
![]() |
#12 |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
Scaricati una versione decente di PHPMailer
http://code.google.com/a/apache-extr...downloads/list La 0.9 è del 2001... di sicuro sarà piena di istruzioni deprecate che con php5.3 non funzionano.
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
![]() |
![]() |
![]() |
#13 | |
Junior Member
Iscritto dal: Oct 2011
Messaggi: 10
|
Quote:
![]() ![]() Grazie mille dell'aiuto bastava davvero avere la versione più aggironata. Sai sto realizzando un software per la gestione richieste d'acquisto per la mia azienda....su server debian con apache2, my sql come DB ho imparato a fare query, sessioni e pagine internet con PHP ma questa mail proprio non ne voleva sapere di funzionare. Grazie mille per l'aiuto e la pazienza...grande!! |
|
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Apr 2005
Città: Campagnola Emilia
Messaggi: 202
|
Figurati
![]()
__________________
"L'informatica è come la fisica.La differenza è che mentre la fisica è governata da leggi naturali, in informatica sei tu il creatore. All'interno del computer puoi essere un Dio." Linus Torvalds |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:13.