inviare una mail con php mailer

  • Creatore Discussione Creatore Discussione Fabio90
  • Data di inizio Data di inizio

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
Buonasera,
ho creato questo script per inviare una mail di conferma a chi si registra. Come mai funziona correttamente solo alcuni hosting diciamo pubblici e non di aziende interne? Grazie mille

PHP:
if ($controllo_query) {
				 	echo "<div class=\"testi\"><p>Grazie per esserti iscritto, ti abbiamo inviato una e-mail.</p></div>";
			 		}
					
					$mail -> From="nome";
					$mail -> FromName="bla bla";
					$mail -> Subject="Registrazione mondo bla";
					$mail -> Body="Registrazione al sito bla.it

Gentile $nome $cognome, questi sono i Vostri dati di accesso a bla bla:
Username/Email: $email
Password: $randPassword

Conservate con cura queste informazioni.
";
					 
					$mail -> AddBCC($email);
					 if ($mail -> Send()){
						 echo "";
					 } else {
						 echo "";
					 }
				 
	
	
	
} //else
 
Come mai funziona correttamente solo alcuni hosting diciamo pubblici e non di aziende interne?
L'invio delle mail è gestito da un servizio, che richiede l'autenticazione dell'utente che ne vuole usufruire
l'autenticazione è ottenuta con il proprio indirizzo mail e con la relativa password (vedi client di posta elettronica)

un servizio di hosting offre normalmente anche il servizio mail e, se non ci sono specifiche situazioni,
utilizza le credenziali dell'amministratore per autenticare l'utente che invia la mail,
perchè la mail è di fatto inviata dal software del sito web,
non dalla persona che sta utilizzando le funzionalità del sito.

quindi c'è la referenza uno a uno tra "sito web" e amministratore

non è così in azienda dove, a fronte di un proprio servizio mail, vi sono molti utenti che possono usufruirne,
ogni utente deve autenticarsi per usufruire del servizio, sia con client di posta sia in modo batch o "sito web",
perché in questo caso non vi è associazione automatica

considera che l'invio batch o "sito web" di fatto sono visti come due utenti diversi che inviano mail,
ciascuno deve autenticarsi

ci sono poi degli hosting che presentano peculiarità per cui è richiesta l'autenticazione,
perché non viene fatta in automatico

c'è anche caso che, una persona cliente di un hosting,
voglia utilizzare un servizio di posta estraneo all'hosting stesso, è ovvio deve autenticarsi
sufficiente ?
ciao
Marino
 
Ciao Marino!
Ti ringrazio per la tua dettagliata e precisa descrizione.
A tal proposito ho modificato lo script con le seguenti aggiunte però il problema non è risolto...

PHP:
       $mail->IsSMTP(); // telling the class to use SMTP
       $mail->SMTPAuth   = false;                  // enable SMTP authentication
       $mail->Host       = "10.2.2.8"; // sets the SMTP server
       $mail->Username   = "";         // SMTP account username
       $mail->Password   = "";        // SMTP account password

e ottengo un Fatal error: Class 'SMTP' not found in /web/htdocs/www.nomesito.it/home/sito/class.phpmailer.php on line 1171
una volta inviata la mail

Cosa posso fare?
 
ho guardato la versione 5.2.8 e ho trovato nel capitolo "Installation & loading"

PHPMailer provides an SPL-compatible autoloader,
and that is the preferred way of loading the library - just

PHP:
require '/path/to/PHPMailerAutoload.php';

and everything should work.
The autoloader does not throw errors if it can't find classes so it prepends itself to the SPL list,
allowing your own (or your framework's) autoloader to catch errors.
SPL autoloading was introduced in PHP 5.1.0,
so if you are using a version older than that you will need to require/include each class manually.

controlla il tuo script ....
ciao
Marino
 

Discussioni simili