Autore Topic: Modulo Email con SMTP - websitex5 v8  (Letto 23013 volte)

pyskelletto

  • Nuovo arrivato
  • *
  • Post: 49
Modulo Email con SMTP - websitex5 v8
« il: 04 Marzo, 2012, 16:57:14 »

Salve,
ho un problema con il mio sito su server di rubalo.it; Il form mail non mi
invia le mail e da errore agli utenti che le inviano
(ora ho "deviato" il problema spostando gli utenti verso un altro server temporaneamente)

Prima tutto funzionava perfettamente, poi il servizio hosting rubalo.it ha cambiato server scrivendomi questo:
"Gentile Cliente, il nuovo server smtp necessita dell'autenticazione, quindi non è possibile farne
a meno, l'unica soluzione è adeguare gli script del suo sito."

E mi hanno inviato questo codice che  incollo di seguito:
require_once('../class.phpmailer.php');
//include("class.smtp.php"); // opzionale,
include la classe se non è
già stata caricata

$mail             = new
PHPMailer();

$body             = file_get_contents('contents.html');
//template mail
html
$body             = eregi_replace
("[\]",'',$body);

$mail->IsSMTP();
$mail->Host       = "mail.
nomedominio.tdl"; // SMTP server
$mail->SMTPDebug  =
2;                     // opzionale, abilita debug SMTP

                                            // 1 = errors and messages

                                            // 2 = messages only
$mail-
>SMTPAuth   = true;                  // abilita SMTP authentication

$mail->Host       = "mail.nomedominio.tdl"; // dichiara il server SMTP

$mail->Username   = "nomecasella@nomedominio.tdl"; // SMTP account
username
$mail->Password   = "tuapassword";        // SMTP account
password

$mail->SetFrom('nomecasella@nomedominio.tdl', 'Nome
Cognome');

$mail->AddReplyTo("nomecasella@nomedominio.tdl","Nome
Cognome");

$mail->Subject    = "Oggetto della mail";

$mail-
>AltBody    = "messaggio alternativo per mail non HTML"; // opzionale


$mail->MsgHTML($body);

$address = "destinatario@dominiodestinatario.
tdl";
$mail->AddAddress($address, "Nome Cognome Destinatario");

$mail-
>AddAttachment("percorsoAllegato");      // allegato, opzionale

if
(!$mail->Send()) {
   echo "Mailer Error: " . $mail->ErrorInfo;
} else
{
   echo "Message sent!";
}


Semplicemente è da sostituire al posto
del comando mail() nella pagina
PHP dove viene gestito l'invio della
mail del Form.

--------------------------

Ecco, questo sopra è quanto mi hanno scritto
Desideravo sapere un parere esperto in merito, inoltre mi hanno detto
che il sistema PHPmailer che sarebbero una
manciata di files da scaricare sul sito.
Io non sono un esperto quindi volevo chiedere:
Come creo quei files e come li scarico sul sito?
Io non capisco nulla di php, so solo aprire
website e gestirlo nelle sue facili impostazioni. Ma cosa dovrei fare
con il codice che mi ha inviato il servizio hosting?
Se potete aiutarmi vi ringrazio!

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #1 il: 04 Marzo, 2012, 22:07:01 »
Come già ti avevo anticipato via email, devi per prima cosa capire che versione di php hai. Le ultime release stabili sono le 5.x e quindi con buone probabilità avrai una 5. Per esserne certo puoi semplicemente, con un qualsiasi ftp .... filezilla va benissimo, inserire un file di puro testo (fatto con il notepad) nella root del sito e contenente:

Codice:
Only registered users can see contents. Please click here to Register or Login.
Lo rinomini in phpinfo.php richiami da browser mediante browser http_://www.tuodominio.xx/phpinfo.php e leggi i risultati.

Dopo aver stabilito la versione di php, vai sul sito http://phpmailer.worxware.com/ e scarichi la versione corretta di phpmailer .... ipotizzando che tu stia usando il php 5 .... scarichiamo il PHPMailer v5.1

Lo scompatti sul tuo pc e, sempre con un ftp, lo copi sulla root del tuo sito web ... magari cambi il nome della cartella in PHPMailer togliendo il numeri della release che sono scomodi da digitare.

A questo punto, sempre con un ftp, devi andare nella cartella /files sul sito web ed individuare il file del tuo form che avrà un nome simile a mail_p002_8_00.php i numeri potrebbero essere diversi, ma non importa. Se ne hai più di uno, dovrai controllare nel codice html della pagina quale è il nome del file, ma è facile.

Apri il file con un editor di testo, il notepad va più che bene anche se io uso il notepad++, ed inserisci nella riga immediatamente successiva all'include (sarà la seconda o trerza riga) quanto segue:

Codice:
Only registered users can see contents. Please click here to Register or Login.
Poi devi cercare la sezione, ovvero la riga, che contiene //Send email to owner che contiene 7, 8 righe e sostituirla con:

Codice:
Only registered users can see contents. Please click here to Register or Login.
Dopo aver personalizzato il codice con i dati del tuo smtp, ovviamente.

Diciamo che con un po' di attenzione si può facilmente personalizzare modificando il mittente prendendo i dati dal form proposto da website .... ad esempio, la riga:

Codice:
Only registered users can see contents. Please click here to Register or Login.
potrebbe diventare:

Codice:
Only registered users can see contents. Please click here to Register or Login.

per garantire l'invio con il mittente contenente il contenuto del campo email del form.

pyskelletto

  • Nuovo arrivato
  • *
  • Post: 49
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #2 il: 05 Marzo, 2012, 20:42:26 »
Ciao serzio,


grazie del tuo aiuto per risolvere questo che per me è un grattacapo di
proporzioni mastodontiche!


Ti prego di essere un po più dettagliato in alcuni passi, non perché
tu sia complicato, ma perché io non ho competenze in materia...


Tu serzio mi hai scritto:


Come già ti avevo anticipato via email, devi per prima cosa capire che versione di php hai. Le ultime release stabili sono le 5.x e quindi con buone probabilità avrai una 5. Per esserne certo puoi semplicemente, con un qualsiasi ftp .... filezilla va benissimo, inserire un file di puro testo (fatto con il notepad) nella root del sito e contenente:
Codice: [Seleziona]<?php phpinfo(); ?>Lo rinomini in phpinfo.php richiami da browser mediante browser http_://www.tuodominio.xx/phpinfo.php e leggi i risultati.






Ecco Serzio, io non ho ben capito.
Ora ho filezilla, lo apro ed entro nel mio sito inserendo ftp, password ecc.
Poi cosa devo fare?
Come faccio ad inserire un file di puro testo (fatto con il notepad) nella root del sito?
Quale "root" del sito?
Come scrivo quel "file di puro testo"?

Perdonami se sono un "neonato" in questo campo...ma purtroppo
non ne so proprio nulla.

Grazie

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #3 il: 05 Marzo, 2012, 22:14:54 »

Ecco Serzio, io non ho ben capito.
Ora ho filezilla, lo apro ed entro nel mio sito inserendo ftp, password ecc.
Poi cosa devo fare?
Come faccio ad inserire un file di puro testo (fatto con il notepad) nella root del sito?
Quale "root" del sito?
Come scrivo quel "file di puro testo"?

Perdonami se sono un "neonato" in questo campo...ma purtroppo
non ne so proprio nulla.

Grazie

Proviamo ad andare con ordine. Sarai capace di aprire il notepad e creare un nuovo file di testo sul desktop?!?!? Bene, inseriscici il testo <?php phpinfo(); ?> ... cosi come lo vedi in rosso e salvalo. Poi apri il filezilla ed entri sul tuo sito web ... normalmente la cartella in cui ti trovi è già la root, solitamente, te ne accorgi dalla presenza del file index. Se non c'e', devi cercarla (la root). Dopo averla trovata, ci copi il file di testo che avevi creato sul desktop ed infine lo rinomini in phpinfo.php.

pyskelletto

  • Nuovo arrivato
  • *
  • Post: 49
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #4 il: 06 Marzo, 2012, 07:28:19 »
Mi sento giustamente umiliato, ma lo merito!
Grazie serzio, ho completato quanto mi hai indicato...
...ma...
la risposta è che la versione del php è 5.3.3
E non ho trovato questa versione nel sito
che mi hai indicato http://phpmailer.worxware.com/
io ho trovato in quel sito, solo questi:  [size=78%]http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/[/size]
Ho sbagliato qualche cosa?


Scusami, e grazie


Ciao!

pyskelletto

  • Nuovo arrivato
  • *
  • Post: 49
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #5 il: 06 Marzo, 2012, 08:37:42 »
...nel frattempo, ho scaricato il PHPMailer 5.1,
lo ho estratto dal zip e ho copiato il tutto in una cartella che ho creato sul desktop
con il nome di PHPMailer.
Con filezilla ho poi copiato questa cartella (PHPMailer) dal desktop alla root
del mio sito.


Dopo sono andato nella cartella files del sito (sempre tramite filezilla)
ed ho trovato il form:  mail_p002_8_00.php
Ma io ne ho 8 di questi "form"...
Mi spiegavi quindi come poter controllare nel codice html della pagina quale è il nome del file, ma non lo ho capito bene...
Per poter controllare il codice html dovrei


Aprire il file con un editor di testo, il notepad (che nel mio XP si chiama "blocco note"), ed inserire nella riga immediatamente successiva all'include (sarà la seconda o trerza riga) il codice che mi avevi indicato...
Ma cosa significa "inserire nella riga immediatamente successiva all'include"?
Cosa è "include"?


Devi avere MOLTA pazienza con me!
Perdonami!!!


Grazie!

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #6 il: 06 Marzo, 2012, 09:28:33 »
Non era mia intenzione quella di umiliarti e perdonami se involontariamente l'ho fatto.

L'unico problema è che con il sistema dei post si allungano i tempi, ma almeno rimane traccia a vantaggio di tutti gli altri.

Devi aprire la pagina che contiene il tuo form con un editor qualsiasi, o visualizzarne il sorgente html con il browser, e controllare la riga di apertura del form che sarà di questo tipo:

<form action="files/mail_p004_8_00.php" method="post" onsubmit= ........

da cui potrai capire qual è il nome del file su cui operare (file che nel mio caso è mail_p004_8_00.php). A questo punto aprirai questo file con il notepad e ..... vediamo se sai andare avanti ..... altrimenti ci sentiamo alla prossima puntata ....  ;)

milux

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1779
    • 3MD
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #7 il: 06 Marzo, 2012, 09:37:51 »
Perdonate l'intrusione ma non capisco come può un provider obbligare i propri utenti che hanno hosting e dominio ad utilizzare l'SMTP autenticato per i moduli...probabilmente ha molte falle da turare..
**OS : Windows 7 - 63Bit (uno è andato perso e non lo trovo..) + W10
**Website X5 :  Evo 10(active) - Evo 11(active) - 13(active)
**Wysiwyg Web Builder 12 (passa al lato oscuro..)
**Hosting : LINUX
**Editor : Notepad ++ / Geany

milux

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1779
    • 3MD
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #8 il: 06 Marzo, 2012, 09:42:16 »
sul vecchio forum  :-*  c'era questo topic del grande Serzio  http://forums.incomedia.info/websitex5/viewtopic.php?p=140001#140001
**OS : Windows 7 - 63Bit (uno è andato perso e non lo trovo..) + W10
**Website X5 :  Evo 10(active) - Evo 11(active) - 13(active)
**Wysiwyg Web Builder 12 (passa al lato oscuro..)
**Hosting : LINUX
**Editor : Notepad ++ / Geany

pyskelletto

  • Nuovo arrivato
  • *
  • Post: 49
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #9 il: 06 Marzo, 2012, 13:17:44 »
Non sei tu che mi umili serzio, tranquillo!
Sono io che sono TOTALMENTE incompetente in materia!!!
Ma DEVO risolvere questo impiccio.


Allora...
ho letto il tuo ultimo post ma, con immensa pazienza serzio scusami,
per me rimane arabo.


Ho aperto il mio progetto (ciò che realizza website quando salvi il sito sul pc)
Lo ho aperto con un word Pad, ma mi da un infinita lista di codici che ho
controllato per mezz'ora e non ho trovato ciò che mi indichi.


Inoltre non posso vedere dal Browser, perché non so come fare
ed il sito non accetta che io prema il tasto destro del Mouse.
Non mi da delle opzioni, ma mi dice che i diritti sono riservati
(se clicco con il tasto destro del mouse).


Come posso controllare quella riga di apertura del form mail?


Grazie e scusami ancora...

pyskelletto

  • Nuovo arrivato
  • *
  • Post: 49
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #10 il: 06 Marzo, 2012, 13:30:00 »
TROVATO!!!


Sono andato sul mio sito con Google Chrome,
Sono entrato nella sezione CONTATTI del mio sito dove ho il form mail,
Sono andato in alto a destra del Browser sulla chiave inglese che rappresenta
come personalizzare Google Chrome,
da li sono andato a Strumenti e poi a Visualizza Sorgente.
Ho trovato la stringa che mi dicevi, ne ho tre identiche.


Ora che devo fare?


Ti prego usa termini terra terra, e dammi indicazioni passo passo,
perché altrimenti veramente rimango veramente "incastrato"!!


Grazie! Attendo!



serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #11 il: 06 Marzo, 2012, 13:58:48 »
TROVATO!!!


Sono andato sul mio sito con Google Chrome,
Sono entrato nella sezione CONTATTI del mio sito dove ho il form mail,
Sono andato in alto a destra del Browser sulla chiave inglese che rappresenta
come personalizzare Google Chrome,
da li sono andato a Strumenti e poi a Visualizza Sorgente.
Ho trovato la stringa che mi dicevi, ne ho tre identiche.


Ora che devo fare?


Ti prego usa termini terra terra, e dammi indicazioni passo passo,
perché altrimenti veramente rimango veramente "incastrato"!!


Grazie! Attendo!

Bene, a questo punto hai trovato la riga di codice con "form action" e quindi sei riuscito a capire quale sia il file mail che dovrai modificare.

Se nella pagina html hai tre form, evidentemente hai tre moduli per l'inserimento dei dati e quindi devi individuare quello che ti interessa e per farlo devi leggere il codice e confrontarlo con la tua pagina su internet .... non tarderai a riconoscere l'analogia che esiste tra il codice html e la sua visualizzazione nel browser e questo rappresenta un buon esercizio. Tieni presente che un form può essere anche il campo di ricerca o comunque un qualsiasi "spazio" in cui puoi inserire dei dati da inviare a qualche procedura.

Sempre con filezilla, entri nella cartella /files e fai click con il destro sul file mail che hai trovato e quindi con il sinistro su "visualizza/modifica".

Ti compaiono una serie di righe di codice tra cui nelle primissime righe quelle a cui faccio riferimento.

Non ti dico tutto subito e lo faccio di proposito, vorrei che tu ci arrivassi pian piano riflettendoci con calma. Altrimenti farei prima a dirti "lo faccio io", ma non impareresti nulla.

Sto cercando di usare terminologia "elementare" e non riesco ad immaginare un linguaggio più semplice di questo ...

Un'ultima cosa, per ora. Il notepad è uno strumento elementare ma fondamentale. Tuttavia ti consiglierei di installare il notepad++ che rappresenta un editor molto più potente anche se semplice come il notepad. Tra i vari benefici, c'e' la possibilità di vedere evidenziati i comandi php e quindi "semplificare" la lettura/decifrazione dei codici.

pyskelletto

  • Nuovo arrivato
  • *
  • Post: 49
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #12 il: 06 Marzo, 2012, 15:07:35 »
Ci sono,
sono entrato con filezilla nel mio sito
ho cliccato sulla cartella /file
ed ho individuato il file mail che mi interessa.


In effetti ho tre form sul sito e devo modificare tutti e tre.


Attendo i passi seguenti.





pyskelletto

  • Nuovo arrivato
  • *
  • Post: 49
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #13 il: 07 Marzo, 2012, 18:33:19 »
Allora...carissimo serzio,
nell'attesa ho fatto dei tentativi, perché mi preme risolvere
il problema...


Con filezilla ho avuto accesso al sito, ho cliccato e aperto la cartella /file
ed ho cliccato sul file mail_p075_8_03.php con il tasto destro del mouse, infine ho selezionato
l'opzione "visualizza modifica".
Si è aperto il file con notepad.
Ho cercato la stringa che mi avevi citato e la ho modificata come dicevi, così:



//Send email to owner
 $txtMsg = "";
 $htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;
 $oEmail = new imEMail("indirizzo mia email","ripeto stesso indirizzo mia mail","dal sito web","iso-8859-1");
 $oEmail->setText($txtMsg . "\r\n\r\n" . $txtData);
 
 $mail = new PHPMailer(true);
 $mail->IsSMTP(); // telling the class to use SMTP
 
 try {
   $mail->Host       = "ho scritto il  mio indirizzo FTP"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "Ho scritto il mio nome utente per accedere all'indirizzo FTP"; // SMTP account username
   $mail->Password   = "Ho scritto la password per accedere al mio indirizzo FTP";        // SMTP account password
   $mail->AddAddress('Ho scritto l'indirizzo mail mio a cui deve essere inviato il form mail del sito', 'Ho scritto il titolo della mail che mi verrà inviata');
   $mail->SetFrom($_POST["Itm_8_03_1"], '');
   $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("<html><body bgcolor=\"#063A69\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></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!
 }




Ecco Serzio, in neretto ti ho indicato cosa ho modificato e
come lo ho modificato.
Ho salvato le modifiche sul sito, e per ora mi da ancora errore.


Attendo tue correzioni!


Grazie mille!

serzio

  • Amministratore
  • Utente storico
  • *****
  • Post: 1706
Re:Modulo Email con SMTP - websitex5 v8
« Risposta #14 il: 08 Marzo, 2012, 11:55:00 »
Allora...carissimo serzio,
nell'attesa ho fatto dei tentativi, perché mi preme risolvere
il problema...


Con filezilla ho avuto accesso al sito, ho cliccato e aperto la cartella /file
ed ho cliccato sul file mail_p075_8_03.php con il tasto destro del mouse, infine ho selezionato
l'opzione "visualizza modifica".
Si è aperto il file con notepad.
Ho cercato la stringa che mi avevi citato e la ho modificata come dicevi, così:



//Send email to owner
 $txtMsg = "";
 $htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;
 $oEmail = new imEMail("indirizzo mia email","ripeto stesso indirizzo mia mail","dal sito web","iso-8859-1");
 $oEmail->setText($txtMsg . "\r\n\r\n" . $txtData);
 

Fin qui c'e' la parte originale di incomedia e che non dovremo più utilizzare, quindi ogni modifica è inutile. Devi solo fare attenzione a togliere la riga $oEmail->send(); che ti genera l'errore (e che hai giustamente eliminato).

$mail = new PHPMailer(true);
 $mail->IsSMTP(); // telling the class to use SMTP
 
 try {
   $mail->Host       = "ho scritto il  mio indirizzo FTP"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "Ho scritto il mio nome utente per accedere all'indirizzo FTP"; // SMTP account username
   $mail->Password   = "Ho scritto la password per accedere al mio indirizzo FTP";        // SMTP account password

Questa è la parte relativa all'autenticazione SMTP e pertanto non ha nulla a che vedere con l' FTP. Questi dati li prendi direttamente da un qualsiasi account di posta elettronica legato al dominio, ma in generale potresti usare qualsiasi SMTP ... ad esempio quello di gmail.
In altre parole devi disporre di:
  • server SMTP (posta in uscita) .... ad esempio ... smtp.webpincopallino.xx oppure mail.webpincopallino.xx
  • login/password dell'account di posta elettronica ... ad esempio info@webpincopallino.xx e la sua password
   $mail->AddAddress('Ho scritto l'indirizzo mail mio a cui deve essere inviato il form mail del sito', 'Ho scritto il titolo della mail che mi verrà inviata');

Questa è la riga in cui si definisce il destinatario e quindi potresti inserire, ad esempio:
$mail->AddAddress('info@webpincopallino.xx', '');

   $mail->SetFrom($_POST["Itm_8_03_1"], '');

 Qui definisci il mittente. Dipende dalla pagina e penso che tu abbia indovinato.
 
 
   $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';

 Qui definisci l'oggetto (subject) dell'email .... ad esempio
$mail->Subject = 'Email di richiesta dal sito web';

 
   $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically

 Questa parte è relativa all'eventuale email in formato testo. Puoi evitarla, è opzionale.
 
 
   $mail->MsgHTML("<html><body bgcolor=\"#063A69\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");

 Qui, invece, c'e' il corpo in HTML dell'email ..... e qui userei un trucchetto, che hai correttamente riportato, un bel copia e incolla dal corpo dell'email preparato dalla sezione originale di incomedia .... ovvero l'argomento preso dalla riga
$oEmail->setHTML("<html><body ...........

 
   $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!
 }

In quest'ultima parte abbiamo tutta la gestione dei messaggi di invio ed errore che puoi personalizzarti a piacere, rimandare ad una pagina di cortesia per l'invio effettuato e una con gli errori ..... qui decidi tu in base alle tue esigenze.