problemi invio email con phpmailer

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve a tutti,

Qualcghe anno fa qualcuno mi risolse il problme aper l'invio email con phpmailer in quanto lavoro su nun mio server chiamato nas. Meglio forse conosciuto come synology. Detto questo oggi ho di nuovo lo stesso problema, ossia non riesco a far partire l'email. Ho copiato ed incollato il codice che andava in precedenza scaricando la versione nuova di phpmailr ma ndada mi da errore. Innanzi tutto vi allego la struttura di com'è inserito la cartella. E questo è l'errore che mi da:

Fatal error: Class 'SMTP' not found in /volume1/web/utenti/prova2/phpmailer/class.phpmailer.php on line 1443

Questo è lo spezzone di codice relativo all'invio email:

<?php
// Parte riguardante l'invio email

//require_once ("/class.phpmailler.php");

require_once 'phpmailer/class.phpmailer.php';
//phpmailer
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP

#Qui c'è il debug dell'smtp, se metti un commento non stampa diavolerie, ma è utile in fase di test per capire la natura di qualche errore
$mail->SMTPDebug = "2"; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only


$mail->SMTPAuth = "true"; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = "465"; // set the SMTP port for the GMAIL server


$mail->Username = "[email protected]"; // GMAIL username


$mail->Password = "xxxxx"; // GMAIL password

$mail->SetFrom("[email protected]");
$mail->Subject = "Attivazione account.";


//$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

//$mail->AltBody = "Iscrizione avvenuta correttamente. "; // optional, comment out and test

$mail->CharSet = "UTF-8"; //Content-Type" content="text/html;

$mail->MsgHTML('Grazie di esserti iscritto. <a href="http://utenti/prova2.php?email=' . $_POST['email']
.'">clicca qui per attivare</a></b>'." "."per attviare l'account. Grazie.");


$mail->AddAddress($_POST['email']);

if(!$mail->Send()) {
echo "Errore nell'inviare l'email: " . $mail->ErrorInfo;
} else {
echo "Messaggio inviatro correttamente!";
echo "<h1> <br>Utente registrato correttamente. E' stata inviata un'email di conferma per attivare l'account. Controllare l'email, prima di accedere.</h1>";
}
?>
<input type="submit" name="reg" value="Invio dati" id="submit" class="centering" disabled="true" />
</form>
</body>
</html>

Dove sbaglio ???? Ricordatevi che lavoro su un server nas-synology
 

Allegati

  • Struttura dove è inserita la cartella phpmailer.PNG
    Struttura dove è inserita la cartella phpmailer.PNG
    3,6 KB · Visite: 422

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
verifica che nella cartella phpmailler ci sia il file class.smtp.php, dovresti averlo scaricato assime a class.phpmailler.php, oppure non inviare, se puoi, tramite smtp,
la class.phpmailler.php se istanziata per l'invio smtp cerca il file class.smtp.php e se non lo trova ti da quell'errore
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao Borgo,

Grazie della risposta. La classe c'è ora t'invio la struttura completa di phpmailer. Eccola qua, quindi come mid ebbo comportare ???? Ossia che correzioni debbo apportare al codice per farlo andare ???
 

Allegati

  • STruttura interna alla cartella phpmailer.PNG
    STruttura interna alla cartella phpmailer.PNG
    9,9 KB · Visite: 477

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
sei sicuro del percorso con cui chiami la classe?
in quello che hai mandato non vedo la cartella phpmailler
tanto di più non so dirti anche perche uso una vecchia versione e, quando le cose funzionano, uso il principio "mai lasciare la strada vecchia per la nuova"
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
In genere lo adopero pure io lo stesso principio ma quasi quasi rimetto quello vecchio. La cartella c'è di questo ne sono certo. Strano che dalla foto che ti ho inviato non si veda. Ma a questo punto rimetto il phpmailer vecchio e vediamo se mi continua dare problemi. Un consiglio che rientra sempre nella discussione non dovrei andare troppo ot anzi direi quasi per niente. Io ho fatto che in fase di registrazione l'utente sia abilitato direttamente l'account senza invio email. Ora ci tenevo ad inviare ugualmente l'email in quanto nell'email ci sarebbe il link per accedere al proprio account. Eliminando l'invio email se non ci dovessi riuscire, non ricordo il comando refresh per reindirizzare la pagina direttamente al login com'era. Io ho questo esempio qua:

echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";

però questo mi reindirizza alla stess apagina per reindirizzarla ad un'altra pagina qual'è la sintassi giusta ???? Provo ad indovinare ma non sono sicuro di ciò che scrivo:

echo "<meta http-equiv='Refresh' content='3; URL="www.login.php"'>";

E' sufficiente questo ???? Grazie.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Si era il secondo che mi mancava quello assoluto. Ti faccio sapere se con quello vecchi va o meno. Ho provato ora con il phpmailer vecchio e mi da i seguenti errori:

1) errore:

Invalid address: You must provide at least one recipient email address. Errore nell'inviare l'email: You must provide at least one recipient email address.

2) errore:

SMTP -> ERROR: Failed to connect to server: Network is unreachable (101)
SMTP Error: Could not connect to SMTP host. Errore nell'inviare l'email: SMTP Error: Could not connect to SMTP host.

Sembra come se non avessi compilato i campi, ma non capisco il perchè i campi sono stati compilati correttamente come nel vecchio esempio. Boh ????
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ecco
PHP:
<?php
//...
echo "<meta http-equiv='Refresh' content='3; URL=http://www.tuo_sito/cartella/pagina.php'>";
//...
?>
fai attenzione quando metti gli apici
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
da quello che si capisce
errore 1)
verifica di aver scritto giusto l'indirizzo del destinatario dell'email, nel tuo script di invio da qualche parte dovresti avere qualcosa del genere
PHP:
<?php
//.....
$mail->AddAddress('tua_email@tuo_sito.it');//indirizzo del destinatario
//....
?>
io ho messo $mail ma dipende da come tu hai istanziato new PHPmailer()
esempio
PHP:
<?php
//...
$pinco_pallo=new PHPmailer();
//...
?>
errore 2)
verifica le varie pass per l'smtp o toglilo, io per esempio nel mio sito non uso l'smtp
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per inviare smtp da qualche parte dovresti avere
PHP:
<?php
//...
$mail->IsSMTP();  // send via SMTP
$mail->Host     = "smtp.tuo_sito.it"; // SMTP servers
$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Username = "pinco.pallo";  // SMTP username
$mail->Password = "xyz"; // SMTP password
//....
?>
o cancelli quelle righe o meglio le commenti
PHP:
<?php
//...
/*$mail->IsSMTP();  // send via SMTP
$mail->Host     = "smtp.tuo_sito.it"; // SMTP servers
$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Username = "pinco.pallo";  // SMTP username
$mail->Password = "xyz"; // SMTP password*/
//....
?>
fai delle prove commentandole
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ho fatto le prove da te indicatomi ma nisba. Questo è lo spezzone del codice:

<?php
// Parte riguardante l'invio email

//require_once ("/class.phpmailler.php");

require_once 'phpmailer/class.phpmailer.php';

//phpmailer
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP

#Qui c'è il debug dell'smtp, se metti un commento non stampa diavolerie, ma è utile in fase di test per capire la natura di qualche errore
//$mail->SMTPDebug = "1"; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only


$mail->IsSMTP(); // send via SMTP
$mail->Host = "smtp.gmail.com"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "[email protected]"; // SMTP username
$mail->Password = "xxxxx"; // SMTP password

$mail->Subject = "Attivazione account.";


$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test

$mail->AltBody = "Iscrizione avvenuta correttamente. "; // optional, comment out and test

$mail->CharSet = "UTF-8"; //Content-Type" content="text/html;

$mail->MsgHTML('Grazie di esserti iscritto. <a href="http://utenti/prova2.php?email=' . $_POST['email']
.'">clicca qui per attivare</a></b>'." "."per attviare l'account. Grazie.");


$mail->AddAddress($_POST['email']);

if(!$mail->Send()) {
echo "Errore nell'inviare l'email: " . $mail->ErrorInfo;
} else {
echo "Messaggio inviatro correttamente!";
echo "<h1> <br>Utente registrato correttamente. E' stata inviata un'email di conferma per attivare l'account. Controllare l'email, prima di accedere.</h1>";
}
?>

l'smtp di gmail è giusta come è gisto lo username e la password. Ti ricordo che lavoro su un emulatore di pagine web che tutto e per tutto come se fosse un sito. Solo che è un server.ossia un na-synology. Questo è l'errore che compare:

Invalid address: You must provide at least one recipient email address. Errore nell'inviare l'email: You must provide at least one recipient email address.
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Abbiamo fatto un piccolo passo avanti che prima non appariva. Questi sono i messaggi:

Inserimento avvenuto correttamente

SMTP Error: Could not connect to SMTP host. Errore nell'inviare l'email: SMTP Error: Could not connect to SMTP host.

Utente registrato correttamente. E' stata inviata un'email di conferma per attivare l'account. Controllare l'email, prima di accedere.

Il messaggio che appare in più adesso è il seguente:

Utente registrato correttamente. E' stata inviata un'email di conferma per attivare l'account. Controllare l'email, prima di accedere.

Il codice è sempre lo stesso:

// Parte riguardante l'invio email

//require_once ("/class.phpmailler.php");

require_once 'phpmailer/class.phpmailer.php';
require_once 'phpmailer/class.smtp.php';
//phpmailer
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP

#Qui c'è il debug dell'smtp, se metti un commento non stampa diavolerie, ma è utile in fase di test per capire la natura di qualche errore
//$mail->SMTPDebug = "2"; // enables SMTP debug information (for testing)
// 1 = errors and messages
// 2 = messages only


$mail->SMTPAuth = "true"; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = "465"; // set the SMTP port for the GMAIL server


$mail->Username = "[email protected]"; // GMAIL username


$mail->Password = "xxx"; // GMAIL password

$mail->SetFrom("[email protected]");
$mail->Subject = "Attivazione account.";

$mail->CharSet = "UTF-8"; //Content-Type" content="text/html;

$mail->MsgHTML('Grazie di esserti iscritto. <a href="http://utenti/MegaLaboratorio/attivautente.php?email=' . $_POST['email']
.'">clicca qui per attivare</a></b>'." "."per attviare l'account. Grazie.");


$mail->AddAddress($_POST['email']);

if(!$mail->Send()) {
echo "Errore nell'inviare l'email: " . $mail->ErrorInfo;
} else {
echo "Messaggio inviatro correttamente!";
}
 
Discussioni simili
Autore Titolo Forum Risposte Data
P Problemi con phpmail ed invio email PHP 0
G Problemi con l'invio email da un host remoto PHP 2
V problemi con invio email in formato html PHP 1
G Invio Mail con PHPMailer, problemi SMTP PHP 7
W problemi incomprensibili invio mail dal sito in PHP PHP 3
C Problemi con l'invio di un modulo web PHP 5
D PROBLEMI invio posta con php PHP 3
V problemi con l'invio di allegato in un form PHP 17
I [Risolto] Problemi invio e-mail con CDOSYS con domini @live.it Classic ASP 4
M problemi invio e-mail Posta Elettronica 8
L problemi con invio dati Form a Database PHP 2
I Problemi invio messaggio utilizzando la funzione mail() PHP 1
A problemi invio dati da php a database mysql PHP 2
1 problemi con invio PHP PHP 11
Angel0 Problema invio e-mail (era: problemi con xoom) Posta Elettronica 4
T Problemi phpmailer x invio ad indirizzi di libero. Aiutatemi! PHP 14
L Problemi con invio form via mail Classic ASP 3
S problemi invio dati da un form a e.mail HTML e CSS 1
N php problemi a visualizzare video PHP 3
T problemi con dati menu a tendina HTML e CSS 2
T problemi di connessione MySQL 2
M Upload immagine con javascript problemi con FormData() Javascript 1
F Problemi visualizzazione mappa Android studio Sviluppo app per Android 0
S Problemi Javascript + Aruba Javascript 2
A Problemi con move_uploaded_file PHP 7
M Problemi con la stampa dei valori in php PHP 1
L Problemi con il login PHP 2
L Problemi form Pagina php HTML e CSS 3
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
Z problemi con foreach insert into PHP 10
B javascript per problemi con pdf e Safari Javascript 0
N Problemi kit videosorveglianza IP Cam e Videosorveglianza 0
M Problemi con creazione maschere Presentati al Forum 1
M Problemi con query a più tabelle PHP 3
R Problemi anomalo insermento in db PHP 9
S Problemi delle funzioni eliminate con PHP e MySQL PHP 4
S Problemi di un principiante PHP 3
M Problemi con blog Grav CMS (Content Management System) 0
F Problemi di visualizzazione di un sito su più browser WordPress 0
S Problemi di visualizzazione form contatti sito web HTML e CSS 2
S incoerenza di stampa. problemi con il magenta Photoshop 3
A problemi con paypall Java 1
A Problemi di accesso da remoto a Ipcam IP Cam e Videosorveglianza 5
michele81 [WordPress] problemi plug meteo api key WordPress 4
E Problemi in registrazione telecamere Dahua IP Cam e Videosorveglianza 6
S Problemi con modulo upload video php (help!) PHP 0
felino [Windows 8.1] Problemi con connessione WiFi Windows e Software 0
M [PHP] Problemi su inserimento array nel db PHP 7
E [PHP] problemi nuova riga con fwrite su piattaforma android PHP 5
M [PHP] Problemi di salvataggio su campo calcolato PHP 0

Discussioni simili