problmea php mailer

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Ho deciso di provare la classe phpmailer:

ma quando vado a inviare la posta mi da questi errori riferendosiu alla classe stessa:


Notice: Undefined variable: from in C:\EasyPHP-5.3.2\www\prova\phpmailer\phpmailer.inc.php on line 259

Notice: Undefined variable: Encoding in C:\EasyPHP-5.3.2\www\prova\phpmailer\phpmailer.inc.php on line 271

Fatal error: Cannot access empty property in C:\EasyPHP-5.3.2\www\prova\phpmailer\phpmailer.inc.php on line 271

come mai?

Nota ho inserito la classe tramite questo codice(prelevato da un'altra discussione simile in questo forum)

PHP:
<?php

/**includo la classe***/
include_once("phpmailer/phpmailer.inc.php");//richiamo la classe 
$Emailmessaggio = new PHPmailer(); 

//setto valori SMTP
$Emailmessaggio->IsSMTP();  // send via SMTP 
$Emailmessaggio->Host     = "mail.libero.it"; // SMTP di infostrada
$Emailmessaggio->SMTPAuth = true;     

 
$Emailmessaggio->IsHTML(true); // invio l'email in formato HTML 
$nome_mittente='Emanuele';
$email_mittente='[email protected]';
$testo_da_inviare="<html><head></head><body>ciao</body></html>";
$Emailmessaggio->FromName= $nome_mittente; 
$Emailmessaggio->From=$email_mittente; 
$Emailmessaggio->AddAddress("[email protected]");$Emailmessaggio->Subject="oggetto mail"; 
$Emailmessaggio->Body=$testo_da_inviare; 
//invio l'email 
if(!$Emailmessaggio->Send()){ //errore di trasmissione 
      echo "errore di trasmissione - riprova più tardi"; 
}else{ //invio avvenuto 
     echo "email inviata - ti sarà risposto quanto prima"; 
}//fine if-else invio 
//ecc.... 
?>
 
Non mi sembra ci siano errori nel tuo script. Devi aver scaricato una versione di PHPMailer a me estranea, perché in quella che uso io non esiste nessun file phpmailer.inc.php, ma solo class.phpmailer.php... puoi controllare?
 
ciao
alex ha ragione, mai visto quel file con .inc
probabilmete ti confondi
prova a correggere in
include_once "phpmailler/class.phpmailer.php";//richiamo la classe

dimenticavo:
in quele discussione l'hai trovato?
 
Ultima modifica:
Per prima cosa grazie a tutti; per Borgo -> ho trovato il codice all'interno del forum poi l'ho personalizzato per poter usufruire della mia classe (che a quanto ho visto è abbastanza datata)

Per ale->grazie del link! Tenendo presente che ho una connessione infostrada; perchè ora mi da questo errore?

SMTP Error: Could not authenticate. errore di trasmissione - riprova più tardi
 
ciao
due cose
1. ti sei dimenticato
PHP:
<?php
//...
$Emailmessaggio->Host     = "mail.libero.it"; // SMTP di infostrada 
$Emailmessaggio->SMTPAuth = true;
// ti sei dimenticato queste due righe
$Emailmessaggio->Username = "tuo_user_name";  // SMTP username
$Emailmessaggio->Password = "tua_password"; // SMTP password
//....
?>
2. verifica che nella stessa cartella di class.phpmailer.php ci sia anche class.smtp.php
perche se non c'e non funzia
 
Allora posto nuovamente il codice inserito (anche se poi quando dovrò caricarlo su Aruba dovrò cambiare user e password e SMTP) - però attualmente a me interessa che funzioni in locale.
PHP:
require "PHPMailer/class.phpmailer.php";
//io preferisco include_once 
//istanziamo la classe
$messaggio = new PHPmailer();
$messaggio->IsSMTP();
$messaggio->Host='html.libero.it'; //SMTP di infostrada


 
// ti sei dimenticato queste due righe 
$messaggio->Username = "[email protected]";  // SMTP username 
$messaggio->Password = "*********"; // SMTP password 


//definiamo le intestazioni e il corpo del messaggio
$messaggio->From='[email protected]';
$messaggio->AddAddress('[email protected]');
$messaggio->AddReplyTo('[email protected]'); 
$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);

inserisco questo codice ma ora mi dice (per due volte):

The following From address failed: [email protected]

Nota:
1 Considera che come user e pass ci ho messo una email e password validi realmente esistenti-> come mai allora mi dice che fallisce per questo indirizzo?

2 Il file class.smpt.php esiste all'interno della cartella.
 
ciao
verifica l'user e la pass: devono essere quelle che utilizzi per la posta in uscita, non un user o pass che vuoi tu.
se usi outlook (o simile) vai sul account e verifica i dati per la posta in uscita
 
credo che html.libero.it come host SMTP non sia corretto, devi avere corretto per sbaglio mail.libero.it
 
Allora ho messo u/p che utilizzo anche con outlook(o per lo meno con outlook ci riesco a riceve/inviare email) e ho tolto la proprietà che dice Alessandro97; ho corretto anche lSMTP come detto giustamente da Eliox ma ora mi da questo :

The following From address failed: root@localhost The following From address failed: root@localhost
SMTP server error: Invalid mail address, must be fully qualified domain






Ragazzi aiuto! Devo assolutamente capire!
 
Ultima modifica:
ciao
non so se libero abbia la possibilità di leggere/inviare la tua posta tramite internet, ma se si per accdere devi impostare un user ed una pass, sono quelli

gli errori che ti da molto probabilmente sono dovuto al fatto che uno o più di questi valori è errato

$messaggio->Host='mail.libero.it';
$messaggio->Username = "[email protected]"; // SMTP username
$messaggio->Password = "*********"; // SMTP password
 
Mi potresti gentilmente indicare dove cavolo reperire user e password di questo benedetto SMPT?
 
A parte che si dice SMTP... i dati per l'autenticazione sono gli stessi che usi per accedere alla webmail, e quelli nello script sono corretti, altrimenti il server restituirebbe un errore del tipo "Failed authentication". A quanto pare sembra che la linea che ti ho consigliato di rimuovere sia necessaria, ma in quel caso non capisco perché restituisce un errore. Prova a contattare l'assistenza di Libero.
 
Ok abbiamo risolto! A chi può servire posto tutto (ricordo che ho un abbonamento con
infostrada)

PHP:
//includo la/le classe
require_once ("PHPMailer/class.phpmailer.php");
require_once ("PHPMailer/class.smtp.php");

//istanziamo la classe
$messaggio = new PHPmailer();
$messaggio->IsSMTP();

$messaggio->Host='smtp.libero.it'; //SMPT di infostrada
$messaggio->SMTPAuth = true;  
$messaggio->Username='[email protected]'; //username di infostrada 
$messaggio->Password='*********'; //password di infostrada




//definiamo le intestazioni e il corpo del messaggio
$messaggio->From='[email protected]'; 
$messaggio->AddAddress('[email protected]'); 
$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);

Immagino che quando carico tutto sul server di aruba dovrò cambiare user, password e SMPT vero?
 
Ok meglio così, ancora grazie , se eventualmente avrò problemi mi rivolgerò ancora qui.
 
ciao
ricordo che ho un abbonamento con infostrada
spero che non come fastweb ti lasci (con grande sollazzo di alex) isolato per ben 5 giorni prima di riparare un guasto.
poi:
su aruba non ti serve la parte smtp (io l'ho dovuta togliere)
 

Discussioni simili