|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Padova
Messaggi: 2717
|
[php + smtp] autenticazione
Salve, mi sto arrovellando il cervello per trovare il modo di far autenticare le mail originate da php con l'smtp server.
Sò dell'esistenza di phpmailer ma non sono stato capace di farlo funzionare, le guide non mi sono state di grande aiuto... qualcuno sà come fare? tanks... |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
E' un problemino...in teoria dovresti implementarti tutto il protocollo con i socket...non è difficile, ma un po' lungo...fai prima a cercare di far funzionare qualche tool esterno...
PS: hai la firma irregolare...la dimensione massima dell'immagine in firma deve essere 100x50x5KB... Puoi correggere ? grazie |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Che problema ti da phpmailer ? Hai vistogli esempi ?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Padova
Messaggi: 2717
|
la firma la correggo stasera, ora sono in uff e non ho programmi di fororitocco a disp! scusa!!!
praticamente ho letto i vari esempi su internet ma non so come fare a metterli in pratica come questo: il problema non è la connessione ma l'output del mailer: il server di posta disconnette subito la sessione: il php non fa neanche l'ehlo ne il mail frm, niente... |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quelo è facile da mettere nel sistema...basta mettere la funzione authSendEmail in un file esterno che includerai dove vorrai usare tale funzione... Dopo basta richiamarla come si vede nella prima aprte delo script...
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ricordati anche di modificare questi dati all'interno della funzione con quelli tuoi:
$smtpServer = "mail.server.com"; $username = "smtpusername"; $password = "smtppassword"; PS: la firma te la sei scordata... |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Aug 2004
Città: Padova
Messaggi: 2717
|
Quote:
1 - prendo e salvo questo script in un file .php 2 - per la registrazione degli utenti c'è il modulo NS-user, sto file qua lo metto li dentro e poi dove richiamo la funzione? 3 - per esempio il modulo postnuke phpbb la fà l'autenticazione in automatico quando vengono spediti i messaggi privati la mia ignoranza in programmazione è talmente grande che la fincantieri potrebbe costruirci un intero stabilimento dentro, magari fosse tutto così facile come mettere in piedi un dominio AD... a ogniuno il suo... grazie x l'attenzione cionci, se non fosse per te sarei ancora a imprecare con gli utenti di mysql... |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Prendi questa parte:
Codice PHP:
Inserisci i giusti valori in: $smtpServer = "mail.server.com"; $username = "smtpusername"; $password = "smtppassword"; Apri il file dove vuoi usare la funzione e insrisci questa parte di codice nel punto dove vuoi che la funzione venga richiamata: Codice PHP:
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Padova
Messaggi: 2717
|
grazie 10k... ieri sera non ho potuto cambiare l'img in sign xke yahoo filemanager era giù, ora ho provveduto... ora provo e vediamo quel che viene fuori
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Padova
Messaggi: 2717
|
cercando tra i vari files ho trovato nel modulo ns-newuser, il file user.php che ad un certo punto mi dice:
// 11-09-01 eugeniobaldi not compliant with PHP < 4.0.5 // pnMail($email, $subject, $message, "From: $from\nX-Mailer: PHP/" . phpversion(), "-f$from"); // if (pnConfigGetVar('reg_verifyemail')) { pnMail($email, $subject, $message, "From: $from\nX-Mailer: PHP/" . phpversion(), 0); // } if (pnConfigGetVar('reg_notifyemail') != "") { $email2 = pnConfigGetVar('reg_notifyemail'); $subject2 = _NOTIFYEMAILSUB; $message2 = _NOTIFYEMAILCONT1 . "$uname" . _NOTIFYEMAILCONT2; pnMail($email2, $subject2, $message2, "From: $from\nX-Mailer: PHP/" . phpversion(), 0); } OpenTable(); echo "<font class=\"pn-normal\">" . _YOUAREREGISTERED . "</font>"; CloseTable(); è questa la sorgente che genera le mail? |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non ne ho idea, ma sembra di sì...
All'inzio di quel codice (prima di questa riga: // 11-09-01 eugeniobaldi not compliant with PHP < 4.0.5) metti il require come scritto sopra... Al posto delle chiamate a pnMail metti: authSendEmail("From: $from\nX-Mailer: PHP/" . phpversion(), "", $email, "", $subject, $message); e authSendEmail("From: $from\nX-Mailer: PHP/" . phpversion(), "", $email2, "", $subject2, $message2); |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Padova
Messaggi: 2717
|
si, il pezzo corrispondente all'invio della mali è proprio quello che ho postato ma mi dice:
Fatal error: newuser_user_finishnewuser(): Failed opening required 'authSendMail.inc.php' (include_path='D:\Root80\csteam\pn\html\') in D:\Root80\csteam\pn\html\modules\NS-NewUser\user.php on line 443 praticamente non trova il file e io l'ho copiato nella stessa cartella ove è user.php e anche nell'include_path... se hai qualche idea prima che copi authsendmail ovunque e che riduca il server ad un ammasso di rottami |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
L'unica idea che ti posso dare è di verificare che il nome del file sia corretto e che tu abbia tolto un'eventuale estensione .txt al file...
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Padova
Messaggi: 2717
|
si, infatti c'era una 'e' in + nel nome del file ma a quanto pare le disgrazie non sono finite
Parse error: parse error in D:\Root80\csteam\pn\html\authSendMail.inc.php on line 8 dove c'è scritto function authsendmail.... l'output sul server è questo Ultima modifica di v10_star : 23-03-2005 alle 18:12. |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Prova a mettere il require all'inzio del file come prima riga...
|
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Padova
Messaggi: 2717
|
x dialogare con il server smtp dialoga ma la classica procedura helo, auth login, mail from, rcpt to, data non la fa, è ingarbugliata e non fa il suo lavoro... praticamente la mail non arriva, secondo me l'authsendmail è rotto
Ultima modifica di v10_star : 24-03-2005 alle 12:40. |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Stampa a schermo tutti i parametri prima di passarli alla funzione...probabilmente vengono aggiunti elementi non necessari ai parametri...
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
A occhio prova a lanciare la funzione così:
authSendEmail("$from", $email, "", $subject, $message); |
|
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Padova
Messaggi: 2717
|
user.php require("authSendMail.inc.php"); // if (pnConfigGetVar('reg_verifyemail')) { authSendEmail($from, $namefrom, $to, $nameto, $subject, $message); // } authsendmail.inc.php <?php /* * * * * * * * * * * * * * SEND EMAIL FUNCTIONS * * * * * * * * * * * * * */ //Authenticate Send - 21st March 2005 //This will send an email using auth smtp and output a log array //logArray - connection, function authSendEmail($from, $namefrom, $to, $nameto, $subject, $message) { //SMTP + SERVER DETAILS /* * * * CONFIGURATION START * * * */ $smtpServer = "172.16.1.3"; $port = "25"; $timeout = "30"; $username = "******"; $password = "****"; $localhost = "phpmailer"; $newLine = "\r\n"; /* * * * CONFIGURATION END * * * * */ //Connect to the host on the specified port $smtpConnect = fsockopen($smtpServer, $port, $errno, $errstr, $timeout); $smtpResponse = fgets($smtpConnect, 515); if(empty($smtpConnect)) { $output = "Failed to connect: $smtpResponse"; return $output; } else { $logArray['connection'] = "Connected: $smtpResponse"; } //Request Auth Login fputs($smtpConnect,"AUTH LOGIN" . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['authrequest'] = "$smtpResponse"; //Send username fputs($smtpConnect, base64_encode($username) . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['authusername'] = "$smtpResponse"; //Send password fputs($smtpConnect, base64_encode($password) . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['authpassword'] = "$smtpResponse"; //Say Hello to SMTP fputs($smtpConnect, "HELO $localhost" . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['heloresponse'] = "$smtpResponse"; //Email From fputs($smtpConnect, "MAIL FROM: $from" . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['mailfromresponse'] = "$smtpResponse"; //Email To fputs($smtpConnect, "RCPT TO: $to" . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['mailtoresponse'] = "$smtpResponse"; //The Email fputs($smtpConnect, "DATA" . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['data1response'] = "$smtpResponse"; //Construct Headers $headers = "MIME-Version: 1.0" . $newLine; $headers .= "Content-type: text/html; charset=iso-8859-1" . $newLine; $headers .= "To: $nameto <$to>" . $newLine; $headers .= "From: $namefrom <$from>" . $newLine; fputs($smtpConnect, "To: $to\nFrom: $from\nSubject: $subject\n$headers\n\n$message\n.\n"); $smtpResponse = fgets($smtpConnect, 515); $logArray['data2response'] = "$smtpResponse"; // Say Bye to SMTP fputs($smtpConnect,"QUIT" . $newLine); $smtpResponse = fgets($smtpConnect, 515); $logArray['quitresponse'] = "$smtpResponse"; } ?> io comincio a odiarlo seriamente sto php dei miei c....... Ultima modifica di v10_star : 24-03-2005 alle 18:02. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:34.



















