Unofficial WebSite X5

Categoria generale => Discussioni generali => Topic aperto da: pyskelletto - 04 Marzo, 2012, 16:57:14

Titolo: Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 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!
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 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/ (http://phpmailer.worxware.com/) e scarichi la versione corretta di phpmailer .... ipotizzando che tu stia usando il php 5 .... scarichiamo il PHPMailer v5.1 (http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/PHPMailer%20v5.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.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 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] (http://www.unofficialwsx5.com/index.php?topic=619.new;topicseen)<?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
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 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.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 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/ (http://phpmailer.worxware.com/)
io ho trovato in quel sito, solo questi:  [size=78%]http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/ (http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/)[/size]
Ho sbagliato qualche cosa?


Scusami, e grazie


Ciao!
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 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!
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 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 ....  ;)
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: milux - 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..
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: milux - 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 (http://forums.incomedia.info/websitex5/viewtopic.php?p=140001#140001)
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 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...
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 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!


Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 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.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 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.




Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 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!
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 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:
   $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.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 08 Marzo, 2012, 14:59:09

Eccomi, forse ho capito qualche cosa in più...
...ma ancora non va...
Allora:


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


Riferito al codice sopra:
Ho capito che devo incollare il codice quì sopra e che devo mettere l'indirizzo mail del sito
in questione al posto delle scritte in NERETTO. Giusto?
Ma non ho capito cosa fare con la scritta che ti ho evidenziato in ROSSO (sempre sopra).
La lascio così come è oppure devo scriverci cosa?


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


Riferito al codice sopra:
Nella scritta che ho evidenziato in rosso (quì sopra) ci devo scrivere qualche cosa?
Se sì, cosa? Oppure la devo cancellare prima di incollare il codice nel file del mio sito?
Oppure posso lasciarla lì così e non fa nulla?
 
 try {
   $mail->Host       = "smtp.xxxxxxx.yyy"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "login@xxxxxxx.yyy"; // SMTP account username
   $mail->Password   = "password";        // SMTP account password


Riferito al codice sopra:
Nelle scritte che ho evidenziato in rosso (sopra) devo inserire:
l'SMTP della mail del mio sito
la USERNAME della stessa mail
la PASSWORD sempre della stessa mail
Devo poi apportare qualche altra modifica prima di incollare il codice nel file del sito?
I doppi slash (//) dopo le scritte che ho evidenziato in rosse, devono essere
cancellati? Le scritte che ho evidenziato in verde devo cancellarle?


   $mail->AddAddress('destinatario@xxxxxxx.yyy', 'pinco pallino');
   $mail->SetFrom('name@yourdomain.com', 'nome cognome mittente');


Riferito al codice quì sopra:
Al posto della scritta che ho evidenziato in rosso, devo inserire il destinatario...sarebbe
sempre l'indirizzo mail che sto cercando di sistemare? E' lo stesso indirizzo mail per cui
prima ho fornito SMTP, username e password? Oppure è l'indirizzo mail del client
di posta elettronica con cui leggo le mail del mio sito?

Al posto di "pinco pallino" che ho evidenziato in verde, cosa devo scrivere?
E al posto della scritta che sopra ho evidenziato in giallo? Devo inserire il "form action"
del file che sto modificando? Se no, cosa? Infine, al posto del "nome cognome mittente"
che ho evidenziato in viola...come posso scrivere il nome del mittente se non so chi è il mittente?
Devo inserirci dei codici? Quali? Dove li trovo?






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


Riferito al codice sopra:
Ecco, caro serzio, quì mi perdo ancora peggio...
Nel codice sopra, dove devo scrivere qualche cosa?
Quali frasi o parole devo sostituire e con cosa?
Devo scrivere qualche codice dentro qualche parentesi o virgoletta?
Devo cancellare il doppio slash finale con le parole in inglese che seguono?
Potresti segnarmi (con IMMENSA pazienza) in rosso cosa devo scrivere
e dove e all'interno di quali virgolette o di quali parentesi
del codice sopra?

Lo so che mi prenderesti a bastonate...ma veramente, solo
così posso riuscire in quest'impresa.

GRAZIE!

Attendo!
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 08 Marzo, 2012, 16:35:16

Eccomi, forse ho capito qualche cosa in più...
...ma ancora non va...

Un'altra cosa importante: mai dire "non va" .... e basta. E' come andare dal medico e dire "mi fa male" .... si, ma cosa? Bisogna sempre specificare qualcosa in più, un messaggio di errore, qualche dettaglio che possa fornire un indizio .... altrimenti non resta che prendere atto del fatto che "non va", ma senza poter fare nulla per capire la causa.

Allora:


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


Riferito al codice sopra:
Ho capito che devo incollare il codice quì sopra e che devo mettere l'indirizzo mail del sito
in questione al posto delle scritte in NERETTO. Giusto?
Ma non ho capito cosa fare con la scritta che ti ho evidenziato in ROSSO (sempre sopra).
La lascio così come è oppure devo scriverci cosa?

Con l'esportazione del sito quel pezzetto di codice viene generato direttamente da website, in base ai dettagli che hai inserito nel pannello "INVIO" dell'oggetto email, ed è sufficiente lasciarlo li dopo averlo reso inerte togliendo o commentando la riga che contiene la chiamata al metodo (funzione) send().
 
 

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


Riferito al codice sopra:
Nella scritta che ho evidenziato in rosso (quì sopra) ci devo scrivere qualche cosa?
Se sì, cosa? Oppure la devo cancellare prima di incollare il codice nel file del mio sito?
Oppure posso lasciarla lì così e non fa nulla?

Queste due righe servono ad inizializzare un nuovo oggetto, chiamato $mail, definendo la classe a cui deve appartenere e dicendogli che deve usare l'SMTP. Quindi sono fondamentali per poter preparare una email con la classe PHPMailer .... mentre l'email di incomedia una la classe imEMail che non è predisposta per l'invio con la modalità che non ci interessa.
 
 
try {
   $mail->Host       = "smtp.xxxxxxx.yyy"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "login@xxxxxxx.yyy"; // SMTP account username
   $mail->Password   = "password";        // SMTP account password


Riferito al codice sopra:
Nelle scritte che ho evidenziato in rosso (sopra) devo inserire:
l'SMTP della mail del mio sito
la USERNAME della stessa mail
la PASSWORD sempre della stessa mail
Devo poi apportare qualche altra modifica prima di incollare il codice nel file del sito?
I doppi slash (//) dopo le scritte che ho evidenziato in rosse, devono essere
cancellati? Le scritte che ho evidenziato in verde devo cancellarle?

 Nessuna modifica oltre l'inserimento dei dati richiesti, server SMTP, username (eventualmente con @dominio) e password. Gli slash servono a definire dei commenti, ovvero testo inerte che serve solo a far capire il codice ad un eventuale lettore. Puoi anche lasciarli, anzi .... io consiglio l'inserimento dei commenti ad ogni aggiunta o personalizzazione di codice. I dati dell'account SMTP vanno verificati attentamente e per farlo è sufficiente configurare un "outlook express" o un "thunderbird" con i medesimi dati per vedere se l'invio delle email funziona correttamente.

 

   $mail->AddAddress('destinatario@xxxxxxx.yyy', 'pinco pallino');
   $mail->SetFrom('name@yourdomain.com', 'nome cognome mittente');


Riferito al codice quì sopra:
Al posto della scritta che ho evidenziato in rosso, devo inserire il destinatario...sarebbe
sempre l'indirizzo mail che sto cercando di sistemare? E' lo stesso indirizzo mail per cui
prima ho fornito SMTP, username e password? Oppure è l'indirizzo mail del client
di posta elettronica con cui leggo le mail del mio sito?

Al posto di "pinco pallino" che ho evidenziato in verde, cosa devo scrivere?
E al posto della scritta che sopra ho evidenziato in giallo? Devo inserire il "form action"
del file che sto modificando? Se no, cosa? Infine, al posto del "nome cognome mittente"
che ho evidenziato in viola...come posso scrivere il nome del mittente se non so chi è il mittente?
Devo inserirci dei codici? Quali? Dove li trovo?

AddAddress serve ad inserire il destinatareio dell'email con i due campi classici indirizzo/descrizione (email/nomecognome) e rappresenta l'indirizzo a cui vuoi che il form venga inviato. Il campo descrizione può essere lasciato vuoto e quindi '' due apici singoli senza niente in mezzo.
 
SetFrom .... stessa cosa di sopra per l'indirizzo del mittente. Se nel tuo form hai inserito un "campo email" puoi usare il suo contenuto per fare in modo che l'email possa sembrare come inviata dal compilante piuttosto che un altro a piacere. Per usare il contenuto del "campo email" presente nel form, dovrai usare il contenuto di $_POST["Itm ... indicato anche nella sezione originale.

 

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


Riferito al codice sopra:
Ecco, caro serzio, quì mi perdo ancora peggio...
Nel codice sopra, dove devo scrivere qualche cosa?
Quali frasi o parole devo sostituire e con cosa?
Devo scrivere qualche codice dentro qualche parentesi o virgoletta?
Devo cancellare il doppio slash finale con le parole in inglese che seguono?
Potresti segnarmi (con IMMENSA pazienza) in rosso cosa devo scrivere
e dove e all'interno di quali virgolette o di quali parentesi
del codice sopra?

Lo so che mi prenderesti a bastonate...ma veramente, solo
così posso riuscire in quest'impresa.

GRAZIE!

Attendo!

Qui non sei stato attento .... l'avevo spiegato.  ;)

$mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
Oggetto dell'email (titolo, subject). Ad es. "Email dal sito web"

$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!';
Puoi toglierla del tutto.

$mail->MsgHTML(...
E' il corpo vero e proprio dell'email, il contenuto con i dati.

echo "Message Sent OK</p>\n";
Per il momento puoi togliere l'echo, ma serve a gestire la pagina di cortesia ... puoi anche mettere al suo posto un
@header("Location: ../boh.html");
in cui redirigi su una pagina boh.html subito dopo l'invio con successo di una email.

Tutto il resto serve a gestire gli eventuali errori in due tipologie, quelli riconosciuti da PHPMailer e quelli non risonosciuti. Puoi lasciare invariato, per il momento.

DIMENTICAVO .... ogni modifica effettuata, svanisce con una esportazione del sito web. Pertanto è necessario fare attenzione alle modifiche e salvarle da qualche parte in locale per poi riapplicarle ad ogni esportazione. In realtà c'e' un trucchetto per evitare il problema ma è argomento di un reality diverso.  ;)
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 08 Marzo, 2012, 19:55:46

Ciao serzio,
Hai ragione, scusami…
Dire “non va” significa tutto e nulla.
Allora…
Dopo aver apportato le modifiche che ti ho descritto, ora dopo
Aver compilato il form mail, non ricevo più “500 server error”
ma ricevo una pagina bianca, vuota, e nella barra degli indirizzi,
dove compare il dominio, mi appare questa scritta:
http://www.nome (http://www.nome) mio sito.com/files/mail_p075_8_03.php


Inoltre, riferito a questi codici:


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


tu mi hai scritto:
Con l'esportazione del sito quel pezzetto di codice viene generato direttamente da website, in base ai dettagli che hai inserito nel pannello "INVIO" dell'oggetto email, ed è sufficiente lasciarlo li dopo averlo reso inerte togliendo o commentando la riga che contiene la chiamata al metodo (funzione) send().


Ecco serzio…
Io non capisco, la mia stupidità in materia mi impedisce di comprendere bene che intendi con il fatto che quel pezzetto di codice venga generato direttamente da website. Devo vedere quale è il codice generato da website e copiarlo in quel pezzetto?
Se sì, dove trovo tale codice? Inoltre, che significa quando mi scrivi “togliendo o commentando la riga che contiene la chiamata al metodo (funzione) send()”??
Lo so che per te sono aspetti ovvi, ma io veramente ci ho passato 30 minuti, ho tentato qualche deduzione…ma nulla, non so dove mettere le mani.


Poi, se hai ancora grande pazienza con la mia stupidità, aggiungo:
Tu mi hai scritto:


AddAddress serve ad inserire il destinatareio dell'email con i due campi classici indirizzo/descrizione (email/nomecognome) e rappresenta l'indirizzo a cui vuoi che il form venga inviato. Il campo descrizione può essere lasciato vuoto e quindi '' due apici singoli senza niente in mezzo.
 
SetFrom .... stessa cosa di sopra per l'indirizzo del mittente. Se nel tuo form hai inserito un "campo email" puoi usare il suo contenuto per fare in modo che l'email possa sembrare come inviata dal compilante piuttosto che un altro a piacere. Per usare il contenuto del "campo email" presente nel form, dovrai usare il contenuto di $_POST["Itm ... indicato anche nella sezione originale.




Ecco serio…chi è il “destinatario dell’email”? Tu dirai che sono io! Sì, certo. Ma quindi che devo scrivere lì? Che si intende con “indirizzo/descrizione”?? Quale è il “campo descrizione”??
Nel mio form c’è un campo mail, come posso usare il suo contenuto? Ho provato a copiarci il contenuto di $_POST["Itm ...
Ed ho scritto quindi questo che segue:
$mail->SetFrom('$_POST["Itm_8_03_1]', '');


Va bene?


Per darti un idea di come è fatto il form mail che sto cercando di modificare,
puoi dare un occhiata al sito www.jadservice.it (http://www.jadservice.it) che è stato messo on-line da pochi giorni su un server temporaneo. Vedi la sezione contatti ed è praticamente quasi identica a quella che devo sistemare io.
Anche quel sito è fatto con website, ed infatti il form mail non è funzionante.
Ma in quel caso è il server che non supporta il PHP e va cambiato.


Infine, anche nel mio sito, dopo aver compilato il form mail, si viene indirizzati ad una pagina che avverte del successo di invio. Come posso fare che accada con il codice che mi hai dato?


Grazie di cuore!
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: stesil - 09 Marzo, 2012, 22:26:08
Scusate l'intrusione, ma leggendo i post mi è venuto un dubbio ...

Questo lo hai inserito?

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.

Rispetto al resto:

Che si intende con “indirizzo/descrizione”?? Quale è il “campo descrizione”??

$mail->AddAddress('destinatario@xxxxxxx.yyy', 'pinco pallino');
la prima parte compresa tra gli apici è l'indirizzo mail del destinatario, la seconda la descrizione

 
Nel mio form c’è un campo mail, come posso usare il suo contenuto? Ho provato a copiarci il contenuto di $_POST["Itm ...
Ed ho scritto quindi questo che segue:
$mail->SetFrom('$_POST["Itm_8_03_1]', '');

Se hai ricavato Itm_8_03_1 dal campo del form, dovrebbe essere corretto.

Infine, anche nel mio sito, dopo aver compilato il form mail, si viene indirizzati ad una pagina che avverte del successo di invio. Come posso fare che accada con il codice che mi hai dato?

echo "Message Sent OK</p>\n";
Per il momento puoi togliere l'echo, ma serve a gestire la pagina di cortesia ... puoi anche mettere al suo posto un
@header("Location: ../boh.html");
in cui redirigi su una pagina boh.html subito dopo l'invio con successo di una email.

sostituisci a boh.html il nome della tua pagina.


@serzio: se ho scritto cavolate per favore correggi.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 09 Marzo, 2012, 23:06:43
Scusate l'intrusione, ma leggendo i post mi è venuto un dubbio ...

Questo lo hai inserito?

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.

Credo di si, ha parlato di pagina bianca, mentre avrebbe avuto un "Class not found". Credo, invece, che abbia solo pasticciato con gli apici e quindi trasformato gran parte del codice in una grande stringa.


...

Inoltre, riferito a questi codici:


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


tu mi hai scritto:
Con l'esportazione del sito quel pezzetto di codice viene generato direttamente da website, in base ai dettagli che hai inserito nel pannello "INVIO" dell'oggetto email, ed è sufficiente lasciarlo li dopo averlo reso inerte togliendo o commentando la riga che contiene la chiamata al metodo (funzione) send().


Ecco serzio…
Io non capisco, la mia stupidità in materia mi impedisce di comprendere bene che intendi con il fatto che quel pezzetto di codice venga generato direttamente da website. Devo vedere quale è il codice generato da website e copiarlo in quel pezzetto?
Se sì, dove trovo tale codice? Inoltre, che significa quando mi scrivi “togliendo o commentando la riga che contiene la chiamata al metodo (funzione) send()”??
Lo so che per te sono aspetti ovvi, ma io veramente ci ho passato 30 minuti, ho tentato qualche deduzione…ma nulla, non so dove mettere le mani.

Durante la realizzazione del sito web, dopo l'inserimento dell'oggetto "form email" ed il completamento dei vari pannelli, rimane l'operazione di esportazione su internet. Questa operazione ricrea tutti i files html, css, js e php che vanno materialmente trasferiti sul sito web.
Dopo aver effettuato l'esportazione, per poter attivare la personalizzazione di cui stiamo parlando, devi editare il file mailxxxxx esportato che così diventerà diverso da quello standard creato da website. E' evidente che alla successiva riesportazione, tale file verrà rigenerato exnovo e quindi andrà a sovrascrivere quello da te modificato.

...
Ecco serio…chi è il “destinatario dell’email”? Tu dirai che sono io! Sì, certo. Ma quindi che devo scrivere lì? Che si intende con “indirizzo/descrizione”?? Quale è il “campo descrizione”??

Il destinatario è colui che riceverà il form compilato dal visitatore del sito. Potresti essere tu oppure il tuo cliente a cui hai preparato il sito web. Ad esempio:

$mail->AddAddress('p.paperino@paperopoli.com', 'Paolino Paperino'); // email/descrizione

oppure

$mail->AddAddress('p.paperino@paperopoli.com', '');  // descrizione omessa

Nel mio form c’è un campo mail, come posso usare il suo contenuto? Ho provato a copiarci il contenuto di $_POST["Itm ...
Ed ho scritto quindi questo che segue:
$mail->SetFrom('$_POST["Itm_8_03_1]', '');


Va bene?

Quasi. Una stringa (frase) è sempre delimitata da "..." (una coppia di doppi apici) o '...' (una coppia di apici singoli), ma non puoi mischiarli "...' oppure '..."

Avresti dovuto usare:

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

Il campo email del tuo form si chiama Itm_8_03_1 e per trasmetterlo dal form al file in php si utilizza la funzione $_POST che accetta come parametro il nome del campo che contiene l'email ... quindi, in altre parole, $_POST["Itm_8_03_1"] preleva e rende disponibile il contenuto del campo Itm_8_03_1 (che sarà l'indirizzo email inserito dal visitatore che compila il form) , mentre il SetFrom() prende due argomenti che sono rispettivamente email e descrizione con una sintassi identica all' AddAddress() e li inserisce in una apposita area dell'oggetto $mail.

...
Infine, anche nel mio sito, dopo aver compilato il form mail, si viene indirizzati ad una pagina che avverte del successo di invio. Come posso fare che accada con il codice che mi hai dato?


Grazie di cuore!



Questo lo lasciamo alla prossima puntata.  ;) Come avrai capito, non c'e' alcun problema a spiegare passo-passo le operazioni, ma a patto di non fornire la pappa pronta e facendo in modo che si capisca quello che si fa.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 10 Marzo, 2012, 08:36:02
Ciao serzio, Ciao stesil


in effetti...ho controllato ed avevo PASTICCIATO
come un tonto con gli apici e le virgolette.
Ho sistemato, almeno credo, ho ricaricato il file ma...nulla.
Ora mi da nuovamente l'errore che mi dava in origine,
quando non avevo apportato nessuna modifica,
il seguente errore:  :(



Server Error

500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.


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


Mentre cerco di trovare gli errori e di capire che cosa
ho sbagliato, ti incollo di seguito l'intero file che si trova
nel form mail_p075_8_03.php:



<?php
//Check Captcha
include("../captcha/imkeys.php");
for ($i=0; $i<5; $i++)
  if ($oCharList[substr($_POST["Itm_8_03_cpf"],$i,1)] != substr($_POST["Itm_8_03_cpv"], $i,1))
    die("Error: Javascript must be enabled! (2)");


include "../res/imemail.inc.php";
require_once("../PHPMailer/class.phpmailer.php");


//Form Data
$txtData = "";
$htmData = "";
$txtData .= "Nome: " . $_POST["Itm_8_03_1"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Nome:</b></td><td>" . $_POST["Itm_8_03_1"] . "</td></tr>";
$txtData .= "Cognome: " . $_POST["Itm_8_03_2"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Cognome:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_2"] . "</td></tr>";
$txtData .= "città/provincia: " . $_POST["Itm_8_03_3"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>città/provincia:</b></td><td>" . $_POST["Itm_8_03_3"] . "</td></tr>";
$txtData .= "indirizzo e-mail: " . $_POST["Itm_8_03_4"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>indirizzo e-mail:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_4"] . "</td></tr>";
$txtData .= "Come hai conosciuto il sito?: " . $_POST["Itm_8_03_5"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Come hai conosciuto il sito?:</b></td><td>" . $_POST["Itm_8_03_5"] . "</td></tr>";
$txtData .= "Descrivi la tua richiesta: " . $_POST["Itm_8_03_6"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Descrivi la tua richiesta:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_6"] . "</td></tr>";


// Template
$htmHead = "<table width=\"90%\" border=\"0\" bgcolor=\"#C0FFFF\" cellpadding=\"4\" style=\"font: 12px Tahoma; color: #0000C0; border: 1px solid #BBBBBB;\">";
$htmFoot = "</table>";


//Send email to owner
 $txtMsg = "";
 $htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;
 $oEmail = new imEMail("mail sito","mail sito","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       = "XXXXXXXXXXX"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "XXXXXXXXXXX"; // SMTP account username
   $mail->Password   = "XXXXX";        // SMTP account password
   $mail->AddAddress('XXXXXXXXX','');
   $mail->SetFrom($_POST["Itm_8_03_1"],'XXXXXXX');
   $mail->Subject = 'PHPMailer Test Subject via mail(XXXXXXXX), advanced';
   $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!
 }








//Send email to user
$txtMsg = "--- NON RISPONDETE A QUESTA E-MAIL ---\r\n\r\nHai inoltrato una richiesta alla sezione di XXXXXXXXX.com\r\n\r\nTi ringraziamo di aver visitato il nostro sito!\r\nStiamo analizzando la tua richiesta,\r\nti risponderemo appena possibile!\r\n\r\nNon dimenticare di controllare anche la casella SPAM della\r\ntua mail, in quanto può capitare che il tuo client\r\ndi posta elettronica inserisca per errore nello spam le nostre risposte!\r\n";
$htmMsg = $htmHead . "<tr><td>--- NON RISPONDETE A QUESTA E-MAIL ---<br><br>Hai inoltrato una richiesta alla sezione di XXXXXXXXXXX.com<br><br>Ti ringraziamo di aver visitato il nostro sito!<br>Stiamo analizzando la tua richiesta,<br>ti risponderemo appena possibile!<br><br>Non dimenticare di controllare anche la casella SPAM della<br>tua mail, in quanto può capitare che il tuo client<br>di posta elettronica inserisca per errore nello spam le nostre risposte!<br></td></tr>" . $htmFoot;
$oEmail = new imEMail("xxxxxxxxxx@xxxxx.xxx ",$_POST["Itm_8_03_4"],"Grazie di averci contattato!","iso-8859-1");
$oEmail->setText($txtMsg . "\r\n\r\n" . $txtData);
$oEmail->setHTML("<html><body bgcolor=\"#0000FF\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$oEmail->send();
@header("Location: ../faq.html");
?>




Ecco serzio, mi pare che ora gli apici e le parole inserite siano corrette,
Il file sopra è ESATTAMENTE quello che io ho inserito dentro il sito
nella cartella /files, nel file mail_p075_8_03.php
Ora rivedrò stringa dopo stringa e cercherò di capire dove ho sbagliato. ???

Grazie serzio, grazie stesil ! :)








Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 10 Marzo, 2012, 15:10:20
Ciao serzio, Ciao stesil


in effetti...ho controllato ed avevo PASTICCIATO
come un tonto con gli apici e le virgolette.

 ;D sicuramente farai più attenzione in futuro alle virgolette ....

Ho sistemato, almeno credo, ho ricaricato il file ma...nulla.
Ora mi da nuovamente l'errore che mi dava in origine,
quando non avevo apportato nessuna modifica,
il seguente errore:  :(



Server Error

500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.


Questo è un ottimo spunto per capire come fare per effettuare un semplice DEBUG (potremmo tradurlo con "diagnosi") sullo script che genera un errore ma non sappiamo dove e perchè. Ho una mezza idea su cosa potrebbe generare un simile problema che ha buone probabilità di trovarsi sulla penultima sezione, ma occorre essere metodici, altrimenti si rischia di perdere tempo inutilmente. Se avessimo accesso al file del log di sistema saremmo molto facilitati, ma purtroppo la maggior parte degli hosting economici non ci forniscono queste informazioni e quindi dobbiamo "industriarci" per nostro conto.
So perfettamente che per te è primario risolvere il problema e forse solo secondario capire il "come", ma purtroppo (si fa per dire) è importante anche capire come non essere dipendenti dagli altri e saper far da se. Anche se questa è una apparente perdita di tempo.

Il php è un linguaggio di scripting interpretato e strutturato, l'esecuzione delle istruzioni è sequenziale, ovvero dalla prima all'ultima salvo interruzioni intermedie dell'esecuzione a causa di errori o di exit() forzati. Il notro problema è che viene generato un errore, ma non sappiamo dove e soprattutto il fatto che sulla barra dell'indirizzo ci sia il nome del file dello script ci dice che inequivocabilmente l'errore viene generato all'interno del file e che l'esecuzione non termina correttamente.

Quindi il nostro obbiettivo è individuare il punto che ci manda la procedura in errore. Come? L'idea è semplice, facciamo una copia del file dello script per evitare di dover rifare il lavoro da capo ed inseriamo delle istruzioni in punti strategici che ci faranno capire a che punto si trova l'esecuzione via via che il webserver esegue i comandi fino ad arrivare all'errore. Naturalmente tali punti dovranno essere scelti ed in gergo tecnico si chiamano "break point" oppure "toggle breakpoint", giusto per capire la terminologia a grandi linee e con qualche necessaria approssimazione  ;) .
Il metodo che scegliamo per ricevere l'informazione sullo status corrente è quello di visualizzare una stringa a video e quindi tramite il comando echo.


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


Mentre cerco di trovare gli errori e di capire che cosa
ho sbagliato, ti incollo di seguito l'intero file che si trova
nel form mail_p075_8_03.php:



<?php
//Check Captcha
include("../captcha/imkeys.php");
for ($i=0; $i<5; $i++) 
if ($oCharList[substr($_POST["Itm_8_03_cpf"],$i,1)] != substr($_POST["Itm_8_03_cpv"], $i,1))   
die("Error: Javascript must be enabled! (2)");

Io comincerei a disattivare provvisoriamente il captcha inserendo una coppia // davanti ciascuna delle righe precedenti indicate in rosso, rendendo il codice inerte.

//Form Data$txtData = "";
$htmData = "";
...
// Template
$htmHead = "<table width=\"90%\" border=\"0\" bgcolor=\"#C0FFFF\" cellpadding=\"4\" style=\"font: 12px Tahoma; color: #0000C0; border: 1px solid #BBBBBB;\">";
$htmFoot = "</table>";
...

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

//Send email to user
$txtMsg = "--- NON RISPONDETE A QUESTA E-MAIL ---\r\n\r\nHai inoltrato una richiesta alla sezione di XXXXXXXXX.com\r\n\r\nTi ringraziamo di aver visitato il nostro sito!\r\nStiamo analizzando la tua richiesta,\r\nti risponderemo appena possibile!\r\n\r\nNon dimenticare di controllare anche la casella SPAM della\r\ntua mail, in
...

@header("Location: ../faq.html");
?>

Tutto il codice che hai incollato è costituito sostanzialmente da 6 sezioni fondamentali e sono le seguenti:
//Check Captcha
//Form Data
// Template
//Send email to owner
//Send email to user
@header("Location: ../faq.html");

Se hai disattivato la prima, ne rimangono 5 e quindi aggiungiamo rispettivamente prima di ciascuna sezione, un echo

echo "//Form Data<br>";
echo "// Template<br>";
 echo "//Send email to owner<br>";
 echo "//Send email to user<br>";
 echo "header<br>"; exit();

E proviamo l'esecuzione. L'errore si ripresenterà, ma sicuramente avremo qualche indizio in più.

 
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 11 Marzo, 2012, 08:33:56
Ciao serzio,


è veramente affascinante questo insieme di stringhe e codici,
e iniziare a capirci qualche MICROSCOPICA cosa è interessantissimo.
Ho inserito i codici che tu mi avevi indicato, gli "echo", ma il risultato
per ora è sempre identico:



Server Error

500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.

Ho controllato più volte gli apici e le virgolette, anche i //,
ma non sortisce nessun effetto.
Mi sento inerme, perché vorrei contribuire a capire dove
è l'errore...ma non so da dove iniziare...
Ma non intendo scoraggiarmi!


A presto,
attendo tue valutazioni!


Grazie!




Ciao!  ;D
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 11 Marzo, 2012, 09:45:53
Ciao serzio,


è veramente affascinante questo insieme di stringhe e codici,
e iniziare a capirci qualche MICROSCOPICA cosa è interessantissimo.

 :D L'unica cosa che mi dispiace è che ci siano pochissimi utenti su questo forum, disposti ad imparare anche a costo di "perderci" tempo. Ed andiamo già di lusso rispetto al fu-forum di incomedia. Peccato. Peccato perchè non è tempo perso, ma tempo guadagnato. Se ti avessi risolto il problema direttamente, ci avrei messo 5 minuti o forse 10 con la connessione lenta, ma tu non avresti imparato assolutamente nulla, mentre ora invece, piccoli interventi di manutenzione sul codice php puoi farli in autonomia guadagnando moltissimo tempo.  ;)

Ho inserito i codici che tu mi avevi indicato, gli "echo", ma il risultato
per ora è sempre identico:



Server Error

500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.

...
E proviamo l'esecuzione. L'errore si ripresenterà, ma sicuramente avremo qualche indizio in più.

Non mi aspettavo che l'errore sparisse. Ma oltre l'errore, dovrebbero esserci dei messaggi a video generati dalle righe echo che ti ho fatto inserire. Sempre che tu le abbia inserite correttamente.

Ho controllato più volte gli apici e le virgolette, anche i //,
ma non sortisce nessun effetto.
Mi sento inerme, perché vorrei contribuire a capire dove
è l'errore...ma non so da dove iniziare...
Ma non intendo scoraggiarmi!

A presto,
attendo tue valutazioni!

Grazie!

Ciao!  ;D

Proviamo a fare così, allora, anche se il procedimento sarà più lungo. Se non riesci a vedere le righe nel browser, ti faccio inserire gli echo e fermare l'esecuzione.

Nella prima parte di codice, disattiviamo la verifica del captcha che ci darà solo problemi e perdita di tempo, per ora:

Codice:
Only registered users can see contents. Please click here to Register or Login.
Poi andiamo nella sezione successiva ed inseriamo quanto segue (ATTENZIONE, il codice da inserire è solo quello della riga con l'echo, il resto è quello che già è presente):

Codice:
Only registered users can see contents. Please click here to Register or Login.
Ci fermiamo qui e proviamo l'esecuzione che dovrebbe farci comparire semplicemente una riga nel browser con la scritta //Form Data e si dovrebbe fermare tutto (exit). Quindi, se non abbiamo errori, vuol dire che fino alla riga echo l'esecuzione è andata bene e dobbiamo proseguire con la sezione successiva. Tieni conto che fin'ora abbiamo controllato soltanto il captcha (disattivato e quindi niente) e l'inclusione dei due files imemail.inc.php e della classe phpmailer.

Quindi togliamo l' exit(); dalla sezione precedente e proseguiamo con la successiva sezione con:

Codice:
Only registered users can see contents. Please click here to Register or Login.
ed eseguiamo. Stesso discorso di sopra. Se non abbiamo errori, l'esecuzione ci visualizzerà sul video due righe, una per la corretta esecuzione fino all'inizio della sezione "Form Data" ed una per la corretta esecuzione fino alla sezione "Template" per poi interrompersi a causa dell'exit(). Fino a questo punto abbiamo eseguito correttamente l'inclusione dei due files e il prelievo delle informazioni inserite nel form.

E' chiaro il metodo usato? Se riesci ad estendere questo sistema anche alle altre sezioni, ti ritroverai in un punto in cui avrai l'errore e le righe visualizzate nel browser ti diranno quale sezione ha visualizzato il problema e quindi sarà sufficiente controllare la sola sezione incriminata.
E' chiaro che dobbiamo anche valutare che, in generale, un errore può essere generato in qualsiasi punto del codice ma manifestato in un punto diverso. Quindi il metodo che ti ho descritto serve ad individuare il "dove" viene manifestato il problema e le indagini si potrebbero estendere in punti diversi del codice ed alla ricerca del "chi" ha generato l'errore.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: milux - 11 Marzo, 2012, 10:48:36
Forse è bene confrontare il tutto  con lo script di Rubalo..  http://www.rubalo.it/kb/entry/60/ (http://www.rubalo.it/kb/entry/60/)
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 11 Marzo, 2012, 10:52:39
Forse è bene confrontare il tutto  con lo script di Rubalo..  http://www.rubalo.it/kb/entry/60/ (http://www.rubalo.it/kb/entry/60/)


Si, anche, il problema potrebbe essere causato da qualche piccola variante al phpmailer che è abbastanza standard, ma che potrebbe essere stato lievemente modificato per funzionare su quei server .... non dimentichiamo che si tratta di server windows e quindi mi aspetto di tutto sul fronte compatibilità.
Con il metodo di diagnosi che ho spiegato, avremo anche questa conferma. Non ho consigliato subito questa verifica per stimolare la discussione.  >:D
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: milux - 11 Marzo, 2012, 10:58:26
................ Non ho consigliato subito questa verifica per stimolare la discussione.  >:D


vado subito a darmi cinque frustate sulla schiena... :-[
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 11 Marzo, 2012, 11:17:01
................ Non ho consigliato subito questa verifica per stimolare la discussione.  >:D


vado subito a darmi cinque frustate sulla schiena... :-[

No, non lo fare .... piuttosto .... comincia a ripassare il phpbb ....  ;)
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: milux - 11 Marzo, 2012, 14:23:53
No, non lo fare .... piuttosto .... comincia a ripassare il phpbb ....  ;)


Ripassare..? me lo sogno pure di notte per fare le modifiche di giorno..  :))
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 14 Marzo, 2012, 17:58:06
Eccomi!

Ciao serzio, ciao milux

Ho fatto tutte le prove che mi hai indicato serzio,


la prima prova ha dato questo risultato:
//Form Data


la seconda prova ha dato questo risultato:
//Form Data
// Template

la terza prova ha dato questo risultato:
//Form Data
// Template
//Send email to owner


la quarta prova ha dato questo risultato:
//Form Data
// Template
//Send email to owner
Invalid address: Marco (che sarebbe il nome inserito nel campo del modulo mail dove è richiesto il nome del compilante)
//Send email to user


Ovviamente non ne capisco il significato...
Attendo vostro parere!

Grazie!

[/size][/font]
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 14 Marzo, 2012, 19:25:58
Eccomi!

Ciao serzio, ciao milux

Ho fatto tutte le prove che mi hai indicato serzio,
Avevo fatto cattivi pensieri  ;) ... scherzo.

la prima prova ha dato questo risultato:
//Form Data

Nel primo tentativo ti ho fatto inserire una riga "echo ...;" che è stata eseguita correttamente prima di visualizzare l'errore, quindi significa che l'esecuzione fino a quel punto è ok.

la seconda prova ha dato questo risultato:
//Form Data
// Template

la terza prova ha dato questo risultato:
//Form Data
// Template
//Send email to owner

Fin qui abbiamo la prova che l'esecuzione dello script supera la prima, la seconda sezione e si ferma senza errori all'inizio della sezione "Send email to owner".

la quarta prova ha dato questo risultato:
//Form Data
// Template
//Send email to owner
Invalid address: Marco (che sarebbe il nome inserito nel campo del modulo mail dove è richiesto il nome del compilante)
//Send email to user


Ovviamente non ne capisco il significato...
Attendo vostro parere!

Grazie!



E qui cominciano i dolori e ... gli errori da correggere sulla sezioni dall'invio all'owner in poi.

Allora, intanto possiamo togliere tutte le righe "echo ..." fino a quella del "Send email to owner" in quanto non ci servono più ed iniziamo a correggere il primo problema sull'email dell'owner o del mittente, per l'appunto, ma dobbiamo capire quale dei due è sbagliato, ma soprattutto quale delle due sottosezioni (ne abbiamo due: invio di incomedia ed invio con smtp) e quindi proviamo a controllarli entrambi con delle righe "echo".

Attenzione adesso. Hai una serie di righe simili alle seguenti che sono relative ad un file per un mio form (diverso dal tuo):

Citazione
echo "//Send email to owner<br>"; // riga aggiunta per il debug
echo "Il mittente è:" . $_POST["Itm_8_00_1"] . "<br>"; // riga aggiunta per il debug che visualizza se il mittente è corretto
//Send email to owner
$txtMsg = "";
$htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;
$oEmail = new imEMail(($imForceSender ? $_POST["Itm_8_00_1"] : "info@serzio.it"),"info@serzio.it","dal serzio.it mailsmtp","iso-8859-1");
$oEmail->setText($txtMsg . "\r\n\r\n" . $txtData);
$oEmail->setHTML("<html><body bgcolor=\"#063A69\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
// $oEmail->send(); // riga modificata in commento per inibire l'invio con il metodo di incomedia

echo "// mail con smtp<br>"; //  riga aggiunta per il debug
// mail con smtp
 $mail = new PHPMailer(true);
 $mail->IsSMTP(); // telling the class to use SMTP
  try {
   $mail->Host       = "mail.serzio.it"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "xxxxxxxx"; // SMTP account username
   $mail->Password   = "yyyyyyyyy";        // SMTP account password
   $mail->AddAddress('info@serzio.it', '');  // ATTENZIONE ad inserire l'indirizzo email scritto bene con gli apici corretti (due coppie separate dalla virgola)
   $mail->SetFrom($_POST["Itm_8_00_1"], '');
   $mail->Subject = 'dal serzio.it mailsmtp (owner) + PHPMailer Test Subject via mail(), advanced';
  $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!
 }




echo "//Send email to user<br>"; exit(); //  riga aggiunta per il debug e per fermare l'esecuzione
//Send email to user
...

In rosso ci sono le righe da aggiungere o modificare per il debug, ovvero per capire dove si trova il problema. Le parti relative ai commenti ( // ) puoi anche non inserirle, io le ho scritte per farti capire il codice.

Esegui le modifiche che ti ho suggerito e che sono molto semplici e prova a rieseguire.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 14 Marzo, 2012, 19:59:05
Modifiche effettuate,
il risultato è questo:



//Send email to owner
Il mittente è:
// mail con smtp
Invalid address: Marco
//Send email to user




...è un bene o un male?
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 14 Marzo, 2012, 20:19:23
Modifiche effettuate,
il risultato è questo:



//Send email to owner
Il mittente è:
// mail con smtp
Invalid address: Marco
//Send email to user




...è un bene o un male?

Secondo te? Cosa ne pensi?  ;)
Sarebbe bello che tu partecipassi con le tue considerazioni su quello che stiamo facendo .... oppure che tu dicessi "non ho capito" questo o quello ..... in fondo stiamo utilizzando questo approccio proprio per lo scopo di far capire quello che si fa.  ;)


E' un bene. Stiamo facendo passi avanti, lentamente, ma si va avanti. Abbiamo appurato che nella sezione email con smtp c'e' un errore, che non è il 500, ma è sempre un errore da risolvere.

L'errore è evidenziato dalle righe quotate in rosso e che ci dicono che dipende dal fatto che hai sbagliato ad inserire il riferimento all'email del mittente inserito nel form.

Quindi dovresti tornare indietro di qualche post fino alla ricerca del campo email presente nel tuo form che avrà una forma simile a quella che ti ho cerchiato nella pagina html che contiene il form.

[attach=1]

Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 15 Marzo, 2012, 15:40:08
Eccomi di nuovo!


Caro serzio, mi sono "massacrato" gli occhi per cercare nel mio form
qualche cosa di simile al form che tu sopra mi hai cerchiato in rosso...nulla!
Vedo sempre troppe differenze...quindi non capisco cosa devo modificare.


Però tu mi hai scritto: "hai sbagliato ad inserire il riferimento all'email del mittente inserito nel form."
Allora ho "studiato" un pò i vari post che mi hai inviato (studiato è un termine eccessivo, li ho osservati meglio!)
ed ho identificato una stringa che mi è sembrato si riferisse all'indirizzo mail del mittente.
Ho quindi modificato il "riferimento all'email del mittente", ed ora il form mail
funziona. Mi è arrivata la mail che ho inviato come prova.


Mi arriva in modo "strano", con la dicitura: PHPMailer Test Subject via mail (ed il soggetto della mail)
Ma intanto arriva e non è affatto poco!
Non arriva però la conferma al mittente.
Inoltre, la pagina che viene fuori dopo l'invio del modulo mail,
è la seguente:





//Send email to owner
Il mittente è:
// mail con smtp
Message Sent OK
//Send email to user


Tu dirai: "accontentati!" ... ed hai ragione, ma...mi pare un pò poco professionale
non inviare una mail di conferma e non far visualizzare una pagina di avvenuto invio.

Che ne dici?
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 15 Marzo, 2012, 15:57:47
......dimenticavo!!
ora ho tolto la dicitura "exit", così non da il "risultato" nella pagina che esce dopo l'invio mail.
La mail arriva correttamente alla mia posta, ma chi compila il modulo mail sul sito
dopo l'invio mail ora riceve nuovamente "errore 500".

Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 15 Marzo, 2012, 19:31:02
Eccomi di nuovo!


Caro serzio, mi sono "massacrato" gli occhi

Benvenuto tra noi. Adesso hai assaggiato cosa significa essere un programmatore. Ti manca la parte relativa al "cervello che fuma", però.  ;)

...
Mi è arrivata la mail che ho inviato come prova.


Mi arriva in modo "strano", con la dicitura: PHPMailer Test Subject via mail (ed il soggetto della mail)

Se rileggi il listato di qualche post sopra, ti accorgi che c'e' una riga:

Citazione
$mail->Subject = 'dal serzio.it mailsmtp (owner) + PHPMailer Test Subject via mail(), advanced';

in cui la parte evidenziata in rosso serve ad impostare il campo "subject" dell'email, ovvero quello che a te non piace e che devi personalizzare. Strano che tu non ci abbia fatto caso.  ;)

Ma intanto arriva e non è affatto poco!
Non arriva però la conferma al mittente.

La conferma al mittente deve essere ancora lavorata .... stesso procedimento dell' owner, ma con destinatario e dati diversi. Ci arriveremo.

 
Inoltre, la pagina che viene fuori dopo l'invio del modulo mail,
è la seguente:





//Send email to owner
Il mittente è:
// mail con smtp
Message Sent OK
//Send email to user


Tu dirai: "accontentati!" ... ed hai ragione, ma...mi pare un pò poco professionale
non inviare una mail di conferma e non far visualizzare una pagina di avvenuto invio.

Che ne dici?

Io non mi accontento nemmeno quando riesco ad ottenere esattamente quello che ho in mente. Apri i tuoi orizzonti ...

Cancella tutte le righe di commento, echo ed exit che abbiamo inserito fino alla sezione //Send email to user e proseguiamo ... il try/catch lascialo .... pubblica la tua parte //send to user ..... così vediamo quale è la situazione attuale.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 17 Marzo, 2012, 16:37:19
Ciao serzio, scusa se ci ho messo un pò di tempo ma ho provato a fare alcuni
tentativi del tutto inutili...


allora,


poi ho fatto quanto mi dicevi, togliendo gli echo e gli exit fino a send mail to user.
Il risultato è che la mail viene inviata correttamente MA la pagina che esce dopo è
sempre il solito "errore 500".


Questo sotto è quanto è ora presente nel form mail del sito:



<?php
//Check Captcha
 include("../captcha/imkeys.php");
 for ($i=0; $i<5; $i++)
    if ($oCharList[substr($_POST["Itm_8_03_cpf"],$i,1)] != substr($_POST["Itm_8_03_cpv"], $i,1))
      die("Error: Javascript must be enabled! (2)");


include "../res/imemail.inc.php";
require_once("../PHPMailer/class.phpmailer.php");


//Form Data
$txtData = "";
$htmData = "";
$txtData .= "Nome: " . $_POST["Itm_8_03_1"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Nome:</b></td><td>" . $_POST["Itm_8_03_1"] . "</td></tr>";
$txtData .= "Cognome: " . $_POST["Itm_8_03_2"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Cognome:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_2"] . "</td></tr>";
$txtData .= "città/provincia: " . $_POST["Itm_8_03_3"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>città/provincia:</b></td><td>" . $_POST["Itm_8_03_3"] . "</td></tr>";
$txtData .= "indirizzo e-mail: " . $_POST["Itm_8_03_4"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>indirizzo e-mail:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_4"] . "</td></tr>";
$txtData .= "Come hai conosciuto il sito?: " . $_POST["Itm_8_03_5"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Come hai conosciuto il sito?:</b></td><td>" . $_POST["Itm_8_03_5"] . "</td></tr>";
$txtData .= "Descrivi la tua richiesta relativa al: " . $_POST["Itm_8_03_6"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Descrivi la tua richiesta relativa al:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_6"] . "</td></tr>";


// Template
$htmHead = "<table width=\"90%\" border=\"0\" bgcolor=\"#C0FFFF\" cellpadding=\"4\" style=\"font: 12px Tahoma; color: #0000C0; border: 1px solid #BBBBBB;\">";
$htmFoot = "</table>";


//send email to owner
 $txtMsg = "";
 $htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;
 $oEmail = new imEMail("xxxxxxxxxxxxxxxxxx","xxxxxxxxxxxxxxxxxxxxx","dal sito web","iso-8859-1");
 $oEmail->setText($txtMsg . "\r\n\r\n" . $txtData);
 // $oEmail->send();


 
// mail con smtp
 $mail = new PHPMailer(true);
 $mail->IsSMTP(); // telling the class to use SMTP
 
 try {
   $mail->Host       = "xxxxxxxxxxxxxxxxx"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "xxxxxxxxxxxxxxxxxxxxxx"; // SMTP account username
   $mail->Password   = "xxxxxxxxxx";        // SMTP account password
   $mail->AddAddress('xxxxxxxxxxxxxxxxxxxxxxxx','');
   $mail->SetFrom($_POST["Itm_8_03_4"],'xxxxxxxxx');
   $mail->Subject = 'PHPMailer Test Subject via mail(xxxxxxxxxxx), advanced';
   $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!
 }


echo "//Send email to user<br>"; 
//Send email to user




echo "//Send email to user<br>";
//send email to user
$txtMsg = "--- NON RISPONDETE A QUESTA E-MAIL ---\r\n\r\nHai inoltrato una richiesta alla sezione xxxxxxxxxxxxxxxxxxxxxx\r\n\r\nTi ringraziamo di aver visitato il nostro sito!\r\nStiamo analizzando la tua richiesta,\r\nti risponderemo appena possibile!\r\n\r\nNon dimenticare di controllare anche la casella SPAM della\r\ntua mail, in quanto può capitare che il tuo client\r\ndi posta elettronica inserisca per errore nello spam le nostre risposte!\r\n";
$htmMsg = $htmHead . "<tr><td>--- NON RISPONDETE A QUESTA E-MAIL ---<br><br>Hai inoltrato una richiesta alla sezione xxxxxxxxxxxxxxxxxxxxxxxx<br><br>Ti ringraziamo di aver visitato il nostro sito!<br>Stiamo analizzando la tua richiesta,<br>ti risponderemo appena possibile!<br><br>Non dimenticare di controllare anche la casella SPAM della<br>tua mail, in quanto può capitare che il tuo client<br>di posta elettronica inserisca per errore nello spam le nostre risposte!<br></td></tr>" . $htmFoot;
$oEmail = new imEMail("xxxxxxxxxxxxxxxxxxxxxxx  ",$_POST["Itm_8_03_4"],"Grazie di averci contattato!","iso-8859-1");
$oEmail->setText($txtMsg . "\r\n\r\n" . $txtData);
$oEmail->setHTML("<html><body bgcolor=\"#0000FF\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$oEmail->send();
echo "header<br>"; exit(); ("Location: ../faq.html");
?>

Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 18 Marzo, 2012, 16:39:57
Ciao serzio, scusa se ci ho messo un pò di tempo ma ho provato a fare alcuni
tentativi del tutto inutili...


allora,


poi ho fatto quanto mi dicevi, togliendo gli echo e gli exit fino a send mail to user.
Il risultato è che la mail viene inviata correttamente MA la pagina che esce dopo è
sempre il solito "errore 500".

Dobbiamo ancora fare qualche modifica alla prima parte dello script, quella relativa all'invio all'owner che diventerà questa che segue:

Codice:
Only registered users can see contents. Please click here to Register or Login.
Non capisco la parte in rosso, ma mi adeguo:
$mail->SetFrom($_POST["Itm_8_03_4"],'xxxxxxxxx');
Come dicevo, al limite avrei sostituito ... ma proprio al limite ... la parte in rosso con $_POST["Itm_8_03_1"] . " " . $_POST["Itm_8_03_2"] .

Mentre la riga in verde:
$mail->Subject = 'PHPMailer Test Subject via mail(xxxxxxxxxxx), advanced'; 

l'avrei scritta così, in modo da avere anche una traccia sulla provenienza del visitatore:
$mail->Subject = 'Email dal sito web da ' . $_SERVER['REMOTE_ADDR'];

A questo punto possiamo passare alla sezione di invio verso il cliente (user). Partiamo dal codice che hai postato, in modo da non confonderci ed il procedimento è abbastanza simile al precedente. L'errore 500, prima o poi sparirà man mano che sistemeremo il codice anche se, come ti dicevo, ho una mezza idea su cosa possa causarlo, ma non voglio correre e dobbiamo arrivarci ragionando.

Il codice di partenza è il seguente:

Codice:
Only registered users can see contents. Please click here to Register or Login.
A cui toglierei qualche riga inutile ed ovviamente rimarrebbe da modificare il metodo di invio con la nuova classe phpmailer. Il codice potrebbe diventare simile al seguente:

Codice:
Only registered users can see contents. Please click here to Register or Login.
Attenzione alle modifiche. Facciamo una prova e ... se non ho dimenticato nulla .... dovrebbe funzionare.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 19 Marzo, 2012, 11:30:34
Ciao serzio!


Ho fatto cinque modifiche del file, mettendo o togliendo o sostituendo alcune
righe con i suggerimenti che mi indicavi come tue idee, o lasciando quelle righe
come le crea incomedia.


Ho provato ad inviare ogni volta delle mail, ma non viene inviata nessuna mail,
ne al mittente ne al destinatario.


Sto provando a ricontrollare se ho commesso errori di "apici" o "virgolette".
Comunque non da nessun errore, mi riporta su una pagina bianca
ogni volta, ad ogni tentativo che ho fatto.


Ti scrivo di seguito ciò che ora è nel form mail del sito:



<?php
//Check Captcha
 include("../captcha/imkeys.php");
 for ($i=0; $i<5; $i++)
    if ($oCharList[substr($_POST["Itm_8_03_cpf"],$i,1)] != substr($_POST["Itm_8_03_cpv"], $i,1))
      die("Error: Javascript must be enabled! (2)");

include "../res/imemail.inc.php";
require_once("../PHPMailer/class.phpmailer.php");

//Form Data
$txtData = "";
$htmData = "";
$txtData .= "Nome: " . $_POST["Itm_8_03_1"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Nome:</b></td><td>" . $_POST["Itm_8_03_1"] . "</td></tr>";
$txtData .= "Cognome: " . $_POST["Itm_8_03_2"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Cognome:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_2"] . "</td></tr>";
$txtData .= "città/provincia: " . $_POST["Itm_8_03_3"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>città/provincia:</b></td><td>" . $_POST["Itm_8_03_3"] . "</td></tr>";
$txtData .= "indirizzo e-mail: " . $_POST["Itm_8_03_4"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>indirizzo e-mail:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_4"] . "</td></tr>";
$txtData .= "Come hai conosciuto?: " . $_POST["Itm_8_03_5"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Come hai conosciuto?:</b></td><td>" . $_POST["Itm_8_03_5"] . "</td></tr>";
$txtData .= "Descrivi la tua richiesta: " . $_POST["Itm_8_03_6"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Descrivi la tua richiesta:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_6"] . "</td></tr>";

// Template
$htmHead = "<table width=\"90%\" border=\"0\" bgcolor=\"#C0FFFF\" cellpadding=\"4\" style=\"font: 12px Tahoma; color: #0000C0; border: 1px solid #BBBBBB;\">";
$htmFoot = "</table>";

 //send email to owner
$htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;
 
$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
 
$mail->Host       = "XXXXXXXXXXXXXXXXXXXX"; // SMTP server
$mail->SMTPAuth   = true;
$mail->Port       = 25;
$mail->Username   = "XXXXXXXXXXXXXXXXXXXXX"; // SMTP account username
$mail->Password   = "xxxxxxxxxxxx";        // SMTP account password
$mail->AddAddress('XXXXXXXXXXXXXXXXXX','');
$mail->SetFrom($_POST["Itm_8_03_4"],'XXXXXXXXXXX');
$mail->Subject = 'PHPMailer Test Subject via mail(XXXXXXXXXX), advanced';$mail->MsgHTML("<html><body bgcolor=\"#063A69\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$mail->Send();
 
// mail con smtp
 $mail = new PHPMailer(true);
 $mail->IsSMTP(); // telling the class to use SMTP
 
 try {
   $mail->Host       = "XXXXXXXXXXXXXXXXXX"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "XXXXXXXXXXXXXXXXXXXX"; // SMTP account username
   $mail->Password   = "XXXXXXXX";        // SMTP account password
   $mail->AddAddress('XXXXXXXXXXXXXXXXXXXX','');
   $mail->SetFrom($_POST["Itm_8_03_4"],'XXXXXXXXXXXX');
   $mail->Subject = 'PHPMailer Test Subject via mail(XXXXXXXXXXX), advanced';
   $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!
 }

//send email to user
$htmMsg = $htmHead . "<tr><td>--- NON RISPONDETE A QUESTA E-MAIL ---<br><br>Hai inoltrato una richiesta alla sezione XXXXXXXXXXXXXXXXXXXXXX<br><br>Ti ringraziamo di aver visitato il nostro sito!<br>Stiamo analizzando la tua richiesta,<br>ti risponderemo appena possibile!<br><br>Non dimenticare di controllare anche la casella SPAM della<br>tua mail, in quanto può capitare che il tuo client<br>di posta elettronica inserisca per errore nello spam le nostre risposte!<br></td></tr>" . $htmFoot;

 $mail = new PHPMailer(true);
 $mail->IsSMTP(); // telling the class to use SMTP
 $mail->Host       = "XXXXXXXXXXXXXXXXXX"; // SMTP server
 $mail->SMTPAuth   = true;
 $mail->Port       = 25;
 $mail->Username   = "XXXXXXXXXXXXXXXXXXXXXXX"; // SMTP account username
 $mail->Password   = "XXXXXXXXXXXX";        // SMTP account password
 $mail->AddAddress('XXXXXXXXXXXXXXXXXXXXX','');
 $mail->SetFrom('noreply@XXXXXXXXXXXXXXXX, '');  // impostato il mittente dell'email su noreply@sitoweb
 $mail->Subject = 'Grazie di averci contattato!';  // impostato il subject dell'email
 $mail->MsgHTML("<html><body bgcolor=\"#0000FF\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
 $mail->Send();

@header("Location: www.XXXXXXXXXXXXX.XXX "); // redirezione sulla pagina index.html da personalizzare
?>






Mi avevi detto di dare un mio parere SE lo avessi avuto...
io ti dico una cosa che ho notato con i miei mille tentativi sciocchi,
ma prendila come detta da un bambino ignorante, perchè tale sono
difronte a queste stringhe!
Allora, nel mio post precedente ti ho scritto ciò che erano i codici
funzionanti (composti tramite le tue indicazioni e che finalmente
inviavano la mail). Ho notato che questa riga:  // $oEmail->send();
aveva due slash che la precedevano mentre la riga originale
creata da website era così:  $oEmail->send();
Ecco, togliendo i due slash (//) mi dava errore 500 e NON inviava più
le mail al destinatario. Invece lasciando i due slash (//) rimaneva
errore 500 ma inviava la mail al destinatario e non al mittente
(come infatti già ti avevo scritto).
Fosse lì l'errore?
Ti prego non farci grasse risate, è solo un dettagli che mi è saltato agli occhi
che mi stanno diventando incrociati a forza di scrutare queste righe e stringhe di codici!!!!


Ciao!

Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 19 Marzo, 2012, 12:33:07
Ciao serzio!

...
Ti prego non farci grasse risate, è solo un dettagli che mi è saltato agli occhi
che mi stanno diventando incrociati a forza di scrutare queste righe e stringhe di codici!!!!


Ciao!


Com'è dura la vita del programmatore ...  :lol:

Non sei stato attento  ;) ... oppure ti sei stancato ... purtroppo occorre molta pazienza, metodo e soprattutto cercare di capire cosa si sta facendo.

Cerchiamo di fissare alcuni concetti fondamentali. Il procedimento di invio delle due email è costituito da una serie di passi non sempre dipendenti tra loro, ma che vengono eseguiti in sequenza fino al termine o fino ad un errore.

1) Dichiariamo quello che ci servirà per l'invio, ovvero le parti reperibili in altri file ma che sono fondamentali (le sequenze <?php e ?> sono di apertura e chiusura dello script)

Citazione
<?php
include "../res/imemail.inc.php";
require_once("../PHPMailer/class.phpmailer.php"); // mailsmtp


2) Sezione della gestione captcha

Citazione
//Check Captcha
include("../captcha/imkeys.php");
for ($i=0; $i<5; $i++)
    if ($oCharList[substr($_POST["Itm_8_03_cpf"],$i,1)] != substr($_POST["Itm_8_03_cpv"], $i,1))
      die("Error: Javascript must be enabled! (2)");


3) Gestione del Form, ovvero prepariamo i dati da inviare via email a partire dal form compilato dall' user e da cui vediamo chiaramente che l'email del compilante è quella in rosso, mentre nome e cognome sono in verde

Citazione
//Form Data
$txtData = "";
$htmData = "";
$txtData .= "Nome: " . $_POST["Itm_8_03_1"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Nome:</b></td><td>" . $_POST["Itm_8_03_1"] . "</td></tr>";
$txtData .= "Cognome: " . $_POST["Itm_8_03_2"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Cognome:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_2"] . "</td></tr>";
$txtData .= "città/provincia: " . $_POST["Itm_8_03_3"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>città/provincia:</b></td><td>" . $_POST["Itm_8_03_3"] . "</td></tr>";
$txtData .= "indirizzo e-mail: " . $_POST["Itm_8_03_4"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>indirizzo e-mail:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_4"] . "</td></tr>";
$txtData .= "Come hai conosciuto?: " . $_POST["Itm_8_03_5"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Come hai conosciuto?:</b></td><td>" . $_POST["Itm_8_03_5"] . "</td></tr>";
$txtData .= "Descrivi la tua richiesta: " . $_POST["Itm_8_03_6"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Descrivi la tua richiesta:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_6"] . "</td></tr>";


4) Gestione del template (colori, bordi della tabella, font e cavolate simili)

Citazione
// Template
$htmHead = "<table width=\"90%\" border=\"0\" bgcolor=\"#C0FFFF\" cellpadding=\"4\" style=\"font: 12px Tahoma; color: #0000C0; border: 1px solid #BBBBBB;\">";
$htmFoot = "</table>";


5) Invio dell'email all'OWNER (il proprietario del sito web)

Icm propone l'invio utilizzando la classe imEMail istanziando (inizializzando) un oggetto chiamato $oEmail, ma che nel tuo caso NON è utilizzabile e ti genera errori di vario tipo e quindi dobbiamo utilizzare un oggetto istanziato dalla classe PHPMailer utilizzando il protocollo SMTP.

Citazione
//send email to owner
$htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;

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

$mail->Host       = "XXXXXXXXXXXXXXXXXXXX"; // SMTP server
$mail->SMTPAuth   = true;
$mail->Port       = 25;
$mail->Username   = "XXXXXXXXXXXXXXXXXXXXX"; // SMTP account username
$mail->Password   = "xxxxxxxxxxxx";        // SMTP account password
$mail->AddAddress('XXX_indirizzo_email_proprietario_del_sito_XXX','');
$mail->SetFrom($_POST["Itm_8_03_4"], $_POST["Itm_8_03_1"] . " " . $_POST["Itm_8_03_2"]);
$mail->Subject = 'Email dal sito web da ' . $_SERVER['REMOTE_ADDR'];
$mail->MsgHTML("<html><body bgcolor=\"#063A69\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$mail->Send();


6) Invio dell'email allo USER (il visitatore che compila il form)

Citazione
//send email to user
$htmMsg = $htmHead . "<tr><td>--- NON RISPONDETE A QUESTA E-MAIL ---<br><br>Hai inoltrato una richiesta alla sezione XXXXXXXXXXXXXXXXXXXXXX<br><br>Ti ringraziamo di aver visitato il nostro sito!<br>Stiamo analizzando la tua richiesta,<br>ti risponderemo appena possibile!<br><br>Non dimenticare di controllare anche la casella SPAM della<br>tua mail, in quanto può capitare che il tuo client<br>di posta elettronica inserisca per errore nello spam le nostre risposte!<br></td></tr>" . $htmFoot;

$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "XXXXXXXXXXXXXXXXXX"; // SMTP server
$mail->SMTPAuth   = true;
$mail->Port       = 25;
$mail->Username   = "XXXXXXXXXXXXXXXXXXXXXXX"; // SMTP account username
$mail->Password   = "XXXXXXXXXXXX";        // SMTP account password
$mail->AddAddress($_POST["Itm_8_03_4"], '');
$mail->SetFrom('noreply@XXXXXXXXXXXXXXXX', '');  // impostato il mittente dell'email su noreply@sitoweb
$mail->Subject = 'Grazie di averci contattato!';  // impostato il subject dell'email
$mail->MsgHTML("<html><body bgcolor=\"#0000FF\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$mail->Send();


7) Redirezione su una pagina diversa

Citazione
@header("Location: www.XXXXXXXXXXXXX.XXX (http://www.XXXXXXXXXXXXX.XXX) "); // redirezione sulla pagina index.html da personalizzare
?>


Attenzione a non fare un minestrone, a dispetto di quanto fatto fin'ora, ti ho elencato tutte le sezioni di cui abbiamo discusso via via.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 19 Marzo, 2012, 18:31:52
...no... mi sono nuovamente perso...
Ho modificato l'invio mail al destinatario (send mail to user)
così che la mail venga inviata all'indirizzo che l'utente
ha inserito nel campo modulo.
Ma...non va...
Leggo e rileggo i codici e non trovo altri errori.
E non invia la mail ne a me ne al mittente.


Una cosa poi non capisco...
Il riepilogo che mi hai scritto è chiaro e fa comprendere
bene le varie parti e la sequenza per l'invio dei vari dati
sia al mittente che al destinatario.
Ma allora a cosa servono le stringhe che seguono:



echo "// mail con smtp<br>"; 
// mail con smtp


ovvero queste righe:


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

 try {
   $mail->Host       = "xxxxxxxxxx"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "xxxxxxxxxxxx"; // SMTP account username
   $mail->Password   = "xxxxxx";        // SMTP account password
   $mail->AddAddress('xxxxxxxxxxxxx','');
   $mail->SetFrom($_POST["Itm_8_03_4"],'foto ritocco');
   $mail->Subject = 'PHPMailer Test Subject via mail(foto ritocco), advanced';
   $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!
 }




Se user è l'utente che invia e owner è il destinatario proprietario del sito,
cosa sono le stringhe sopra?


In ogni caso, non trovo l'errore...
continuerò a cercare, e in caso riscrivo.


Intanto ora i codici (che non funzionano) che ho inserito nel sito sono i seguenti:





<?php
//Check Captcha
include("../captcha/imkeys.php");
for ($i=0; $i<5; $i++)
    if ($oCharList[substr($_POST["Itm_8_03_cpf"],$i,1)] != substr($_POST["Itm_8_03_cpv"], $i,1))
      die("Error: Javascript must be enabled! (2)");

include "../res/imemail.inc.php";
require_once("../PHPMailer/class.phpmailer.php");

//Form Data
$txtData = "";
$htmData = "";
$txtData .= "Nome: " . $_POST["Itm_8_03_1"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Nome:</b></td><td>" . $_POST["Itm_8_03_1"] . "</td></tr>";
$txtData .= "Cognome: " . $_POST["Itm_8_03_2"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Cognome:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_2"] . "</td></tr>";
$txtData .= "città/provincia: " . $_POST["Itm_8_03_3"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>città/provincia:</b></td><td>" . $_POST["Itm_8_03_3"] . "</td></tr>";
$txtData .= "indirizzo e-mail: " . $_POST["Itm_8_03_4"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>indirizzo e-mail:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_4"] . "</td></tr>";
$txtData .= "Come hai conosciuto?: " . $_POST["Itm_8_03_5"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Come hai conosciuto?:</b></td><td>" . $_POST["Itm_8_03_5"] . "</td></tr>";
$txtData .= "Descrivi la tua richiesta: " . $_POST["Itm_8_03_6"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Descrivi la tua richiesta:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_6"] . "</td></tr>";

// Template
$htmHead = "<table width=\"90%\" border=\"0\" bgcolor=\"#C0FFFF\" cellpadding=\"4\" style=\"font: 12px Tahoma; color: #0000C0; border: 1px solid #BBBBBB;\">";
$htmFoot = "</table>";

//send email to owner
$htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;

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

$mail->Host       = "XXXXXXXXXXXXXXXXXXXX"; // SMTP server
$mail->SMTPAuth   = true;
$mail->Port       = 25;
$mail->Username   = "XXXXXXXXXXXXXXXXXXXXX"; // SMTP account username
$mail->Password   = "xxxxxxxxxxxx";        // SMTP account password
$mail->AddAddress('XXXXXXXXXXXXXXXXXX','');
$mail->SetFrom($_POST["Itm_8_03_4"],'XXXXXXXXXXX');
$mail->Subject = 'PHPMailer Test Subject via mail(XXXXXXXXXX), advanced';$mail->MsgHTML("<html><body bgcolor=\"#063A69\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$mail->Send();

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

try {
   $mail->Host       = "XXXXXXXXXXXXXXXXXX"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "XXXXXXXXXXXXXXXXXXXX"; // SMTP account username
   $mail->Password   = "XXXXXXXX";        // SMTP account password
   $mail->AddAddress('XXXXXXXXXXXXXXXXXXXX','');
   $mail->SetFrom($_POST["Itm_8_03_4"],'XXXXXXXXXXXX');
   $mail->Subject = 'PHPMailer Test Subject via mail(XXXXXXXXXXX), advanced';
   $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!
}

//send email to user
$htmMsg = $htmHead . "<tr><td>--- NON RISPONDETE A QUESTA E-MAIL ---<br><br>Hai inoltrato una richiesta alla sezione XXXXXXXXXXXXXXXXXXXXXX<br><br>Ti ringraziamo di aver visitato il nostro sito!<br>Stiamo analizzando la tua richiesta,<br>ti risponderemo appena possibile!<br><br>Non dimenticare di controllare anche la casella SPAM della<br>tua mail, in quanto può capitare che il tuo client<br>di posta elettronica inserisca per errore nello spam le nostre risposte!<br></td></tr>" . $htmFoot;

$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "XXXXXXXXXXXXXXXXXX"; // SMTP server
$mail->SMTPAuth   = true;
$mail->Port       = 25;
$mail->Username   = "XXXXXXXXXXXXXXXXXXXXXXX"; // SMTP account username
$mail->Password   = "XXXXXXXXXXXX";        // SMTP account password
$mail->AddAddress($_POST["Itm_8_03_4"], '');
$mail->SetFrom('noreply@XXXXXXXXXXXXXXXX, '');  // impostato il mittente dell'email su noreply@sitoweb
$mail->Subject = 'Grazie di averci contattato!';  // impostato il subject dell'email
$mail->MsgHTML("<html><body bgcolor=\"#0000FF\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$mail->Send();

@header("Location: www.XXXXXXXXXXXXX.XXX (http://www.XXXXXXXXXXXXX.XXX) "); // redirezione sulla pagina index.html da personalizzare
?>
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 19 Marzo, 2012, 19:18:34
ho fatto un pò di altri tentativi per mia deduzione (stupidissima deduzione)
ma ovviamente NON hanno funzionato.


Per ora rimane il fatto che l'unico codice
funzionante (che almeno invia la mail al destinatario, ma non al mittente)
è il seguente codice:



<?php
//Check Captcha
 include("../captcha/imkeys.php");
 for ($i=0; $i<5; $i++)
    if ($oCharList[substr($_POST["Itm_8_03_cpf"],$i,1)] != substr($_POST["Itm_8_03_cpv"], $i,1))
      die("Error: Javascript must be enabled! (2)");


include "../res/imemail.inc.php";
require_once("../PHPMailer/class.phpmailer.php");


//Form Data
$txtData = "";
$htmData = "";
$txtData .= "Nome: " . $_POST["Itm_8_03_1"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Nome:</b></td><td>" . $_POST["Itm_8_03_1"] . "</td></tr>";
$txtData .= "Cognome: " . $_POST["Itm_8_03_2"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Cognome:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_2"] . "</td></tr>";
$txtData .= "città/provincia: " . $_POST["Itm_8_03_3"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>città/provincia:</b></td><td>" . $_POST["Itm_8_03_3"] . "</td></tr>";
$txtData .= "indirizzo e-mail: " . $_POST["Itm_8_03_4"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>indirizzo e-mail:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_4"] . "</td></tr>";
$txtData .= "Come hai conosciuto il sito?: " . $_POST["Itm_8_03_5"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Come hai conosciuto il sito?:</b></td><td>" . $_POST["Itm_8_03_5"] . "</td></tr>";
$txtData .= "Descrivi la tua richiesta relativa al: " . $_POST["Itm_8_03_6"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Descrivi la tua richiesta relativa al:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_6"] . "</td></tr>";


// Template
$htmHead = "<table width=\"90%\" border=\"0\" bgcolor=\"#C0FFFF\" cellpadding=\"4\" style=\"font: 12px Tahoma; color: #0000C0; border: 1px solid #BBBBBB;\">";
$htmFoot = "</table>";


//send email to owner
 $txtMsg = "";
 $htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;
 $oEmail = new imEMail("xxxxxxxxxxxxxxxxxx","xxxxxxxxxxxxxxxxxxxxx","dal sito web","iso-8859-1");
 $oEmail->setText($txtMsg . "\r\n\r\n" . $txtData);
 // $oEmail->send();


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

 try {
   $mail->Host       = "xxxxxxxxxxxxxxxxx"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "xxxxxxxxxxxxxxxxxxxxxx"; // SMTP account username
   $mail->Password   = "xxxxxxxxxx";        // SMTP account password
   $mail->AddAddress('xxxxxxxxxxxxxxxxxxxxxxxx','');
   $mail->SetFrom($_POST["Itm_8_03_4"],'xxxxxxxxx');
   $mail->Subject = 'PHPMailer Test Subject via mail(xxxxxxxxxxx), advanced';
   $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!
 }

 
//send email to user
$txtMsg = "--- NON RISPONDETE A QUESTA E-MAIL ---\r\n\r\nHai inoltrato una richiesta alla sezione xxxxxxxxxxxxxxxxxxxxxx\r\n\r\nTi ringraziamo di aver visitato il nostro sito!\r\nStiamo analizzando la tua richiesta,\r\nti risponderemo appena possibile!\r\n\r\nNon dimenticare di controllare anche la casella SPAM della\r\ntua mail, in quanto può capitare che il tuo client\r\ndi posta elettronica inserisca per errore nello spam le nostre risposte!\r\n";
$htmMsg = $htmHead . "<tr><td>--- NON RISPONDETE A QUESTA E-MAIL ---<br><br>Hai inoltrato una richiesta alla sezione xxxxxxxxxxxxxxxxxxxxxxxx<br><br>Ti ringraziamo di aver visitato il nostro sito!<br>Stiamo analizzando la tua richiesta,<br>ti risponderemo appena possibile!<br><br>Non dimenticare di controllare anche la casella SPAM della<br>tua mail, in quanto può capitare che il tuo client<br>di posta elettronica inserisca per errore nello spam le nostre risposte!<br></td></tr>" . $htmFoot;
$oEmail = new imEMail("xxxxxxxxxxxxxxxxxxxxxxx  ",$_POST["Itm_8_03_4"],"Grazie di averci contattato!","iso-8859-1");
$oEmail->setText($txtMsg . "\r\n\r\n" . $txtData);
$oEmail->setHTML("<html><body bgcolor=\"#0000FF\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$oEmail->send();
echo "header<br>"; exit(); ("Location: ../faq.html");
?>




Ho confrontato mille volte questo codice funzionante
(che almeno invia la mail al destinatario) con gli altri codici
di cui abbiamo parlato e che ci siamo scritti, ma
sono totalmente diversi in alcuni punti...
...solo che questo sopra funziona e gli altri no.
Ho provato ad aggiungere delle parti,
sempre in base a mie deduzioni dalle tue spiegazioni,
ma nulla...
ogni modifica apportata al codice che ti ho indicato sopra
in colore blu non porta a nessun risultato:
mail NON inviata al destinatario
mail NON inviata al mittente
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 19 Marzo, 2012, 19:36:26
...no... mi sono nuovamente perso...
Ho modificato l'invio mail al destinatario (send mail to user)
così che la mail venga inviata all'indirizzo che l'utente
ha inserito nel campo modulo.
Ma...non va...
Leggo e rileggo i codici e non trovo altri errori.
E non invia la mail ne a me ne al mittente.

... non sei stato attento. Praticamente ti ho scritto il codice esattamente come avresti dovuto inserirlo tu. Tipo "pappa pronta" per capirci. Lascia stare tutto quanto e segui me ed il codice che ti ho inserito nell'ultimo mio post (a parte questo)

Una cosa poi non capisco...
Il riepilogo che mi hai scritto è chiaro e fa comprendere
bene le varie parti e la sequenza per l'invio dei vari dati
sia al mittente che al destinatario.
Ma allora a cosa servono le stringhe che seguono:

echo "// mail con smtp<br>"; 
// mail con smtp

La prima serve a stampare la stringa "// mail con smtp" e va a capo (il br).
La seconda è un commento e quindi non serve a nulla se non a fare capire che da quel punto comincia la parte che gestisce l'invio con l'smtp.
 

ovvero queste righe:


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

La prima serve ad istanziare un nuovo oggetto chiamato $mail dicendo che esso sarà di tipo PHPMailer. In gergo tecnico si dice che $mail è un'istanza della classe PHPMailer.
Se esistesse una classe PHPUomo che definisce un bipede pensante ...  :lol: ... per creare un nuovo ominide chiamato Paolino dovrei dare la seguente istruzione: $Paolino = new PHPUomo();

La seconda dice che l'oggetto $mail deve usare il protocollo SMTP.

try {
   $mail->Host       = "mail.xxxxxxxx.com"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "photo.retouching@sorprendere.com"; // SMTP account username
   $mail->Password   = "xxxxx";        // SMTP account password
   $mail->AddAddress('xxxxxxxxxxx@gmail.com (sorprendere.com@gmail.com)','');
   $mail->SetFrom($_POST["Itm_8_03_4"],'foto ritocco');
   $mail->Subject = 'PHPMailer Test Subject via mail(foto ritocco), advanced';
   $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!
 }

Tutta la parte nel try viene eseguita con la capacità di intercettare gli eventuali errori (chiamati eccezioni, exception) e dirottare l'esecuzione (catch) sulle varie parti di codice.

Se la classe funziona, puoi anche omettere questo controllo .... al massimo ti va in errore e non viene visualizzato l'errore. Inoltre, la riga:

 echo "Message Sent OK</p>\n";  

ha come effetto collaterale di inibire l'ultimo comando header() che ti fa il redirect.


 
Se user è l'utente che invia e owner è il destinatario proprietario del sito,
cosa sono le stringhe sopra?

Prova a ricopiare esattamente il codice che ti ho proposto modificando le sole parti con le XXXXX che ti ho evidenziato e che rappresentano le tue personalizzazioni.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 20 Marzo, 2012, 16:06:31
Ciao serzio!

perdonami è colpa mia...
pensavo di averti scritto che avevo già provato il codice
copiandolo esattamente come lo avevi scritto tu
(ovviamente personalizzando password, host ecc)
ma non aveva funzionato. Nessun invio di mail ne a me ne al
mittente, e nessun errore, solo una pagina bianca finale.

Il codice che ho provato (unendo quelli che tu mi hai scritto)
è il seguente:




<?php
include "../res/imemail.inc.php";
require_once("../PHPMailer/class.phpmailer.php"); // mailsmtp
//Check Captcha
include("../captcha/imkeys.php");
for ($i=0; $i<5; $i++)
    if ($oCharList[substr($_POST["Itm_8_03_cpf"],$i,1)] != substr($_POST["Itm_8_03_cpv"], $i,1))
      die("Error: Javascript must be enabled! (2)");


//Form Data
$txtData = "";
$htmData = "";
$txtData .= "Nome: " . $_POST["Itm_8_03_1"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Nome:</b></td><td>" . $_POST["Itm_8_03_1"] . "</td></tr>";
$txtData .= "Cognome: " . $_POST["Itm_8_03_2"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Cognome:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_2"] . "</td></tr>";
$txtData .= "città/provincia: " . $_POST["Itm_8_03_3"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>città/provincia:</b></td><td>" . $_POST["Itm_8_03_3"] . "</td></tr>";
$txtData .= "indirizzo e-mail: " . $_POST["Itm_8_03_4"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>indirizzo e-mail:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_4"] . "</td></tr>";
$txtData .= "Come hai conosciuto?: " . $_POST["Itm_8_03_5"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Come hai conosciuto?:</b></td><td>" . $_POST["Itm_8_03_5"] . "</td></tr>";
$txtData .= "Descrivi la tua richiesta: " . $_POST["Itm_8_03_6"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Descrivi la tua richiesta:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_6"] . "</td></tr>";


// Template
$htmHead = "<table width=\"90%\" border=\"0\" bgcolor=\"#C0FFFF\" cellpadding=\"4\" style=\"font: 12px Tahoma; color: #0000C0; border: 1px solid #BBBBBB;\">";
$htmFoot = "</table>";


//send email to owner
$htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;
$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "XXXXXXXXXXXXXXXXXXXX"; // SMTP server
$mail->SMTPAuth   = true;
$mail->Port       = 25;
$mail->Username   = "XXXXXXXXXXXXXXXXXXXXX"; // SMTP account username
$mail->Password   = "xxxxxxxxxxxx";        // SMTP account password
$mail->AddAddress('XXX_indirizzo_email_proprietario_del_sito_XXX','');
$mail->SetFrom($_POST["Itm_8_03_4"], $_POST["Itm_8_03_1"] . " " . $_POST["Itm_8_03_2"]);
$mail->Subject = 'Email dal sito web da ' . $_SERVER['REMOTE_ADDR'];
$mail->MsgHTML("<html><body bgcolor=\"#063A69\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$mail->Send();


//send email to user
$htmMsg = $htmHead . "<tr><td>--- NON RISPONDETE A QUESTA E-MAIL ---<br><br>Hai inoltrato una richiesta alla sezione XXXXXXXXXXXXXXXXXXXXXX<br><br>Ti ringraziamo di aver visitato il nostro sito!<br>Stiamo analizzando la tua richiesta,<br>ti risponderemo appena possibile!<br><br>Non dimenticare di controllare anche la casella SPAM della<br>tua mail, in quanto può capitare che il tuo client<br>di posta elettronica inserisca per errore nello spam le nostre risposte!<br></td></tr>" . $htmFoot;


$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "XXXXXXXXXXXXXXXXXX"; // SMTP server
$mail->SMTPAuth   = true;
$mail->Port       = 25;
$mail->Username   = "XXXXXXXXXXXXXXXXXXXXXXX"; // SMTP account username
$mail->Password   = "XXXXXXXXXXXX";        // SMTP account password
$mail->AddAddress($_POST["Itm_8_03_4"], '');
$mail->SetFrom('noreply@XXXXXXXXXXXXXXXX, '');  // impostato il mittente dell'email su noreply@sitoweb
$mail->Subject = 'Grazie di averci contattato!';  // impostato il subject dell'email
$mail->MsgHTML("<html><body bgcolor=\"#0000FF\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$mail->Send();
@header("Location: www.XXXXXXXXXXXXX.XXX "); // redirezione sulla pagina index.html da personalizzare
?>




Poi ho fatto anche questo tentativo, aggiungendo la parte "mail con smtp"
che era presente nell'originale e nel codice che aveva funzionato:



<?php
include "../res/imemail.inc.php";
require_once("../PHPMailer/class.phpmailer.php"); // mailsmtp
//Check Captcha
include("../captcha/imkeys.php");
for ($i=0; $i<5; $i++)
    if ($oCharList[substr($_POST["Itm_8_03_cpf"],$i,1)] != substr($_POST["Itm_8_03_cpv"], $i,1))
      die("Error: Javascript must be enabled! (2)");
//Form Data
$txtData = "";
$htmData = "";
$txtData .= "Nome: " . $_POST["Itm_8_03_1"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Nome:</b></td><td>" . $_POST["Itm_8_03_1"] . "</td></tr>";
$txtData .= "Cognome: " . $_POST["Itm_8_03_2"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Cognome:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_2"] . "</td></tr>";
$txtData .= "città/provincia: " . $_POST["Itm_8_03_3"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>città/provincia:</b></td><td>" . $_POST["Itm_8_03_3"] . "</td></tr>";
$txtData .= "indirizzo e-mail: " . $_POST["Itm_8_03_4"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>indirizzo e-mail:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_4"] . "</td></tr>";
$txtData .= "Come hai conosciuto?: " . $_POST["Itm_8_03_5"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Come hai conosciuto?:</b></td><td>" . $_POST["Itm_8_03_5"] . "</td></tr>";
$txtData .= "Descrivi la tua richiesta: " . $_POST["Itm_8_03_6"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Descrivi la tua richiesta:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_6"] . "</td></tr>";


// Template
$htmHead = "<table width=\"90%\" border=\"0\" bgcolor=\"#C0FFFF\" cellpadding=\"4\" style=\"font: 12px Tahoma; color: #0000C0; border: 1px solid #BBBBBB;\">";
$htmFoot = "</table>";


//send email to owner
$htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;
$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "XXXXXXXXXXXXXXXXXXXX"; // SMTP server
$mail->SMTPAuth   = true;
$mail->Port       = 25;
$mail->Username   = "XXXXXXXXXXXXXXXXXXXXX"; // SMTP account username
$mail->Password   = "xxxxxxxxxxxx";        // SMTP account password
$mail->AddAddress('XXX_indirizzo_email_proprietario_del_sito_XXX','');
$mail->SetFrom($_POST["Itm_8_03_4"], $_POST["Itm_8_03_1"] . " " . $_POST["Itm_8_03_2"]);
$mail->Subject = 'Email dal sito web da ' . $_SERVER['REMOTE_ADDR'];
$mail->MsgHTML("<html><body bgcolor=\"#063A69\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$mail->Send();



// mail con smtp
 $mail = new PHPMailer(true);
 $mail->IsSMTP(); // telling the class to use SMTP
 
 try {
   $mail->Host       = "YYYYYYYYYYYYYYYYYYYYY"; // SMTP server
   $mail->SMTPAuth   = true;
   $mail->Port       = 25;
   $mail->Username   = "YYYYYYYYYYYYYYYYYYYYY"; // SMTP account username
   $mail->Password   = "YYYYYYYYYYYYY";        // SMTP account password
   $mail->AddAddress('YYYYYYYYYYYYYYYYYYYYYY','');
   $mail->SetFrom($_POST["Itm_8_03_4"],'YYYYYYYYYYYYYY');
   $mail->Subject = 'PHPMailer Test Subject via mail(YYYYYYYYYYYY), advanced';
   $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!
 }




//send email to user
$htmMsg = $htmHead . "<tr><td>--- NON RISPONDETE A QUESTA E-MAIL ---<br><br>Hai inoltrato una richiesta alla sezione XXXXXXXXXXXXXXXXXXXXXX<br><br>Ti ringraziamo di aver visitato il nostro sito!<br>Stiamo analizzando la tua richiesta,<br>ti risponderemo appena possibile!<br><br>Non dimenticare di controllare anche la casella SPAM della<br>tua mail, in quanto può capitare che il tuo client<br>di posta elettronica inserisca per errore nello spam le nostre risposte!<br></td></tr>" . $htmFoot;


$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "XXXXXXXXXXXXXXXXXX"; // SMTP server
$mail->SMTPAuth   = true;
$mail->Port       = 25;
$mail->Username   = "XXXXXXXXXXXXXXXXXXXXXXX"; // SMTP account username
$mail->Password   = "XXXXXXXXXXXX";        // SMTP account password
$mail->AddAddress($_POST["Itm_8_03_4"], '');
$mail->SetFrom('noreply@XXXXXXXXXXXXXXXX, '');  // impostato il mittente dell'email su noreply@sitoweb
$mail->Subject = 'Grazie di averci contattato!';  // impostato il subject dell'email
$mail->MsgHTML("<html><body bgcolor=\"#0000FF\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$mail->Send();
@header("Location: www.XXXXXXXXXXXXX.XXX "); // redirezione sulla pagina index.html da personalizzare
?>


Entrambi i tentativi non hanno funzionato.
L'unico codice che ha inviato la mail al solo destinatario
è quello riportato nel mio post sopra, il post numero 41.

Cosa ho sbagliato?
Ho copiato ed unito i codici che mi hai dato,
dove ho commesso l'errore?
Ho ricontrollato tutte le password e gli host smtp
e gli indirizzi mail...sono ok.
Che errore ho fatto?
 :-X :o



Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 20 Marzo, 2012, 16:36:54
Ricontrolla il codice, c'e' una virgoletta (apice) mancante e sicuramente hai fatto qualche altro errore.

Ho fatto copia e incolla del php postato da te su un mio sito web di prova, ho modificato i parametri dell'smtp e quelli del form, ovviamente, ed il risultato è qui:

[attach=1] [attach=2]

Perfettamente funzionante.

Se hai ricontrollato tutto e ne sei assolutamente certo, cerchiamo di fare una diagnosi più accurata.

http://www.serzio.it/evo8/pyskelletto (http://www.serzio.it/evo8/pyskelletto)
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 20 Marzo, 2012, 20:05:10
Grazie serzio!


Ho controllato tutto il codice e mi sembra di aver visto solo l'apice mancante.
Ma fino ad ora sono stato sincero e voglio rimanere sincero:
sono molto stanco e non posso dire di aver controllato benissimo.
Quindi domani ricontrollerò quando starò meno stanco.


Intanto, aggiungendo l'apice che mancava, la mail viene inviata
al destinatario ma non al mittente, e al termine dell'invio si
apre questa pagina:



Fatal error: Uncaught exception 'phpmailerException' with message 'SMTP Error: The following recipients failed: mail del mittente' in D:\shared\XXXXXXXXXXXXXX_com\XXXXXXXXXXX.com\PHPMailer\class.phpmailer.php:754 Stack trace: #0 D:\shared\XXXXXXXXXXXXXXXX_com\XXXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php(576): PHPMailer->SmtpSend('Date: Tue, 20 M...', '--b1_762f41ce46...') #1 D:\shared\XXXXXXXXXXXXX_com\XXXXXXXXXXXXXX.com\files\mail_p075_8_03.php(59): PHPMailer->Send() #2 {main} thrown in D:\shared\XXXXXXXXXXXXXXX_com\XXXXXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php on line 754




il codice che è presente sul sito e genera questo errore è il seguente:



<?php
include "../res/imemail.inc.php";
require_once("../PHPMailer/class.phpmailer.php"); // mailsmtp
//Check Captcha
include("../captcha/imkeys.php");
for ($i=0; $i<5; $i++)
    if ($oCharList[substr($_POST["Itm_8_03_cpf"],$i,1)] != substr($_POST["Itm_8_03_cpv"], $i,1))
      die("Error: Javascript must be enabled! (2)");
//Form Data
$txtData = "";
$htmData = "";
$txtData .= "Nome: " . $_POST["Itm_8_03_1"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Nome:</b></td><td>" . $_POST["Itm_8_03_1"] . "</td></tr>";
$txtData .= "Cognome: " . $_POST["Itm_8_03_2"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Cognome:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_2"] . "</td></tr>";
$txtData .= "città/provincia: " . $_POST["Itm_8_03_3"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>città/provincia:</b></td><td>" . $_POST["Itm_8_03_3"] . "</td></tr>";
$txtData .= "indirizzo e-mail: " . $_POST["Itm_8_03_4"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>indirizzo e-mail:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_4"] . "</td></tr>";
$txtData .= "Come hai conosciuto?: " . $_POST["Itm_8_03_5"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Come hai conosciuto?:</b></td><td>" . $_POST["Itm_8_03_5"] . "</td></tr>";
$txtData .= "Descrivi la tua richiesta: " . $_POST["Itm_8_03_6"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Descrivi la tua richiesta:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_03_6"] . "</td></tr>";


// Template
$htmHead = "<table width=\"90%\" border=\"0\" bgcolor=\"#C0FFFF\" cellpadding=\"4\" style=\"font: 12px Tahoma; color: #0000C0; border: 1px solid #BBBBBB;\">";
$htmFoot = "</table>";


//send email to owner
$htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;
$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "XXXXXXXXXXXXXXXXXXXX"; // SMTP server
$mail->SMTPAuth   = true;
$mail->Port       = 25;
$mail->Username   = "XXXXXXXXXXXXXXXXXXXXX"; // SMTP account username
$mail->Password   = "xxxxxxxxxxxx";        // SMTP account password
$mail->AddAddress('XXX_indirizzo_email_proprietario_del_sito_XXX','');
$mail->SetFrom($_POST["Itm_8_03_4"], $_POST["Itm_8_03_1"] . " " . $_POST["Itm_8_03_2"]);
$mail->Subject = 'Email dal sito web da ' . $_SERVER['REMOTE_ADDR'];
$mail->MsgHTML("<html><body bgcolor=\"#063A69\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$mail->Send();


//send email to user
$htmMsg = $htmHead . "<tr><td>--- NON RISPONDETE A QUESTA E-MAIL ---<br><br>Hai inoltrato una richiesta alla sezione XXXXXXXXXXXXXXXXXXXXXX<br><br>Ti ringraziamo di aver visitato il nostro sito!<br>Stiamo analizzando la tua richiesta,<br>ti risponderemo appena possibile!<br><br>Non dimenticare di controllare anche la casella SPAM della<br>tua mail, in quanto può capitare che il tuo client<br>di posta elettronica inserisca per errore nello spam le nostre risposte!<br></td></tr>" . $htmFoot;


$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "XXXXXXXXXXXXXXXXXX"; // SMTP server
$mail->SMTPAuth   = true;
$mail->Port       = 25;
$mail->Username   = "XXXXXXXXXXXXXXXXXXXXXXX"; // SMTP account username
$mail->Password   = "XXXXXXXXXXXX";        // SMTP account password
$mail->AddAddress($_POST["Itm_8_03_4"], '');
$mail->SetFrom('noreply@XXXXXXXXXXXXXXXX', '');  // impostato il mittente dell'email su noreply@sitoweb
$mail->Subject = 'Grazie di averci contattato!';  // impostato il subject dell'email
$mail->MsgHTML("<html><body bgcolor=\"#0000FF\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$mail->Send();
@header("Location: www.XXXXXXXXXXXXX.XXX "); // redirezione sulla pagina index.html da personalizzare
?>









Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 21 Marzo, 2012, 12:00:20
...ecco...


ho controllato ogni apice e parentesi e virgoletta...
...spero di aver controllato bene... certo dopo una mattinata di lavoro
pesante dalle 05:15, non è il massimo della concentrazione
mettersi a controllare nella pausa un codice così complesso!!
Però è sicuramente meglio che controllarlo la sera dopo TUTTA un intera
giornata di lavoro pesante!!


...io penso che non ci siano errori...però il risultato è:


Fatal error: Uncaught exception 'phpmailerException' with message 'SMTP Error: The following recipients failed: mail del mittente' in D:\shared\XXXXXXXXXXXXXX_com\XXXXXXXXXXX.com\PHPMailer\class.phpmailer.php:754 Stack trace: #0 D:\shared\XXXXXXXXXXXXXXXX_com\XXXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php(576): PHPMailer->SmtpSend('Date: Tue, 20 M...', '--b1_762f41ce46...') #1 D:\shared\XXXXXXXXXXXXX_com\XXXXXXXXXXXXXX.com\files\mail_p075_8_03.php(59): PHPMailer->Send() #2 {main} thrown in D:\shared\XXXXXXXXXXXXXXX_com\XXXXXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php on line 754




Almeno mi puoi indicare che significa questo errore?
Scusami e grazie!


Perdona il peso che ti sto dando.


Grazie



Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 21 Marzo, 2012, 23:48:24
...ecco...


ho controllato ogni apice e parentesi e virgoletta...
...spero di aver controllato bene... certo dopo una mattinata di lavoro
pesante dalle 05:15, non è il massimo della concentrazione
mettersi a controllare nella pausa un codice così complesso!!
Però è sicuramente meglio che controllarlo la sera dopo TUTTA un intera
giornata di lavoro pesante!!


...io penso che non ci siano errori...però il risultato è:


Fatal error: Uncaught exception 'phpmailerException' with message 'SMTP Error: The following recipients failed: mail del mittente' in D:\shared\XXXXXXXXXXXXXX_com\XXXXXXXXXXX.com\PHPMailer\class.phpmailer.php:754 Stack trace: #0 D:\shared\XXXXXXXXXXXXXXXX_com\XXXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php(576): PHPMailer->SmtpSend('Date: Tue, 20 M...', '--b1_762f41ce46...') #1 D:\shared\XXXXXXXXXXXXX_com\XXXXXXXXXXXXXX.com\files\mail_p075_8_03.php(59): PHPMailer->Send() #2 {main} thrown in D:\shared\XXXXXXXXXXXXXXX_com\XXXXXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php on line 754




Almeno mi puoi indicare che significa questo errore?
Scusami e grazie!


Perdona il peso che ti sto dando.


Grazie


Quindi abbiamo assodato che tutto funziona fino all'invio al mittente che va in errore.
L'errore dice che il phpmailer ha generato un errore "non catturato", ovvero senza try-catch, in quanto il destinatario (recipient) ha fallito. Purtroppo non sappiamo quale sia il motivo e quindi dobbiamo fare qualche prova mirata sulla sola sezione "//Send to user".

Prova a replicare le modifiche che seguono (ho anche tolto i commenti inutili):

Citazione
//send email to user
$htmMsg = $htmHead . "<tr><td>--- NON RISPONDETE A QUESTA E-MAIL ---<br><br>Hai inoltrato una richiesta alla sezione XXXXXXXXXXXXXXXXXXXXXX<br><br>Ti ringraziamo di aver visitato il nostro sito!<br>Stiamo analizzando la tua richiesta,<br>ti risponderemo appena possibile!<br><br>Non dimenticare di controllare anche la casella SPAM della<br>tua mail, in quanto può capitare che il tuo client<br>di posta elettronica inserisca per errore nello spam le nostre risposte!<br></td></tr>" . $htmFoot;


$usermail = new PHPMailer(true);
$usermail->IsSMTP();
$usermail->Host       = "XXXXXXXXXXXXXXXXXX";
$usermail->SMTPAuth   = true;
$usermail->Port       = 25;
$usermail->Username   = "XXXXXXXXXXXXXXXXXXXXXXX";
$usermail->Password   = "XXXXXXXXXXXX";
$usermail->AddAddress($_POST["Itm_8_03_4"], $_POST["Itm_8_03_1"] . " " . $_POST["Itm_8_03_2"]);
$usermail->SetFrom('noreply@XXXXXXXXXXXXX.XXX', 'o'); 
$usermail->Subject = 'Grazie di averci contattato!'; 
$usermail->MsgHTML("<html><body bgcolor=\"#0000FF\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$usermail->Send();
exit();
//@header("Location: www.XXXXXXXXXXXXX.XXX (http://www.xxxxxxxxxxxxx.xxx/) "); // redirezione sulla pagina index.html da personalizzare
?>

Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 22 Marzo, 2012, 13:53:14
Mi sento inerme,
vorrei contribuire di più ma non ne ho le capacità...


Spero almeno che tutto questo possa essere utile anche ad altri.


Allora,
Ora il messaggio di errore è cambiato, è il seguente:


Fatal error: Uncaught exception 'phpmailerException' with message 'SMTP Error: Could not connect to SMTP host.' in D:\shared\XXXXXXXXXXXXXX_com\XXXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php:820 Stack trace: #0 D:\shared\XXXXXXXXXXXXXX_com\XXXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php(705): PHPMailer->SmtpConnect() #1 D:\shared\XXXXXXXXXXXXXX_com\XXXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php(576): PHPMailer->SmtpSend('Date: Thu, 22 M...', '--b1_260172b030...') #2 D:\shared\XXXXXXXXXXXXX_com\XXXXXXXXXXXXXXX.com\files\mail_p075_8_03.php(59): PHPMailer->Send() #3 {main} thrown in D:\shared\XXXXXXXXXXXXXX_com\XXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php on line 820


Non menziona più la mail del mittente, dell'utente che compila il form.
E' un errore grave? :-[



Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 22 Marzo, 2012, 14:12:59
Mi sento inerme,
vorrei contribuire di più ma non ne ho le capacità...

Non preoccuparti, è normale quando ci si vuole improvvisare professionisti senza avere le basi. Fa parte dell' "illusione dei 5 passi". Come hai potuto notare, fin qui abbiamo risolto una parte dei problemi ed occorre ancora un piccolo sforzo per individuare quest'ultimo errore ed eliminarlo.

Spero almeno che tutto questo possa essere utile anche ad altri.

Penso di si, a giudicare dal numero di visite del topic in considerazione della sua età. Tra un pelino, entra nei top-10.

Allora,
Ora il messaggio di errore è cambiato, è il seguente:


Fatal error: Uncaught exception 'phpmailerException' with message 'SMTP Error: Could not connect to SMTP host.' in D:\shared\XXXXXXXXXXXXXX_com\XXXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php:820 Stack trace: #0 D:\shared\XXXXXXXXXXXXXX_com\XXXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php(705): PHPMailer->SmtpConnect() #1 D:\shared\XXXXXXXXXXXXXX_com\XXXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php(576): PHPMailer->SmtpSend('Date: Thu, 22 M...', '--b1_260172b030...') #2 D:\shared\XXXXXXXXXXXXX_com\XXXXXXXXXXXXXXX.com\files\mail_p075_8_03.php(59): PHPMailer->Send() #3 {main} thrown in D:\shared\XXXXXXXXXXXXXX_com\XXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php on line 820


Non menziona più la mail del mittente, dell'utente che compila il form.
E' un errore grave? :-[

Qui devi verificare i parametri di accesso e validazione al server smtp. Copiali pari pari dall'altra sezione funzionante, ma cambia il nome dell'oggetto da $mail a $usermail o anche diverso, se vuoi.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 22 Marzo, 2012, 15:12:01
Fatto!


Sinceramente non ho percepito differenze, se non di uno spazio...
ma ho preferito copiarli esattamente e rinominarli.


Il risultato è tornato molto simile a quello precedente, riguardante la mail del mittente:


Fatal error: Uncaught exception 'phpmailerException' with message 'SMTP Error: The following recipients failed: MAIL MITTENTE' in D:\shared\XXXXXXXXXXXX_com\XXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php:754 Stack trace: #0 D:\shared\XXXXXXXXXXXXX_com\XXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php(576): PHPMailer->SmtpSend('Date: Thu, 22 M...', '--b1_6a8a62a953...') #1 D:\shared\XXXXXXXXXXX_com\XXXXXXXXXXXXX.com\files\mail_p075_8_03.php(60): PHPMailer->Send() #2 {main} thrown in D:\shared\XXXXXXXXXXX_com\XXXXXXXXXXXXXX.com\PHPMailer\class.phpmailer.php on line 754



Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 22 Marzo, 2012, 15:38:54
Caro serzio,


tra pochi minuti devo uscire, ma nella pausa lavoro ho continuato a pensare a quale poteva essere l'errore...
Dentro me pensavo: Non può sbagliare serzio, è troppo preciso e competente, se c'è un errore deve essere colpa mia che magari non gli ho trasmesso correttamente tutti i dati...


pensa e ripensa, pensa e ripensa, leggi  rileggi quel codice cento volte... :-\


Alla fine ho pensato che quando tu hai scritto "noreply@XXXXXXX", ti riferivi ad un dato che devo inserire io,
e non a scrivere semplicemente "noreply@il nome del mio sito".
In effetti io non ho un "noreply" tra le mie pagine e quindi ho rimesso la stessa mail
del sito a cui scrive il mittente, la casella mail del sito a cui va il modulo mail
(che poi ovviamente viene spedito ad un altro indirizzo mail che leggo con il client di posta elettronica).


Ed infatti così funziona tutto perfettamente!!


TI PREGO non mi frustare, sono stato un CRETINO di prima categoria,
ma dato che di solito mettevi solo XXXXXXX dove dovevo inserire dati, ho supposto
che "noreply" fosse parte del codice.


Grazie mille serzio,


ti ho stressato la vita per tre settimane!!
Desidero ringraziarti anche in privato via mail
appena torno questa sera!!


Sei un grande!!!




CIAO!



Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 07 Maggio, 2012, 16:29:05

E sono di nuovo quì!


Altro sito, con problema identico. Ho provato a seguire la stessa procedura sopra indicata ma mi viene riportato questo errore:
Fatal error: Uncaught exception 'phpmailerException' with message 'Invalid address: ' in D:\shared\disinfestazioni_it\disinfestazioni-pulizie-sanificazioni.it\PHPMailer\class.phpmailer.php:494 Stack trace: #0 D:\shared\disinfestazioni_it\disinfestazioni-pulizie-sanificazioni.it \files\mail_p045_8_02.php(41): PHPMailer->SetFrom(NULL, NULL, NULL, ' ', NULL) #1 {main} thrown in D:\shared\disinfestazioni_it\disinfestazioni-pulizie-sanificazioni.it\PHPMailer\class.phpmailer.php on line 494


Ho provato a controllare se i parametri immessi o se le username e password siano tutte corrette, ho richiesto e ottenuto nuovamente tutti i parametri dal provider dell'hosting ma continua a darmi l'errore sopra indicato.
Di seguito inserisco il form mail che genera il suddetto errore:
 
<?php
include "../res/imemail.inc.php";
require_once("../PHPMailer/class.phpmailer.php"); // mailsmtp
 
//Check Captcha
include("../captcha/imkeys.php");
for ($i=0; $i<5; $i++)
    if ($oCharList[substr($_POST["Itm_8_02_cpf"],$i,1)] != substr($_POST["Itm_8_02_cpv"], $i,1))
      die("Error: Javascript must be enabled! (2)");
 
//Form Data
$txtData = "";
$htmData = "";
$txtData .= "Desidero che mandiate un tecnico per un preventivo riguardo: " . $_POST["Itm_8_02_1"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Desidero che mandiade un tecnico per un preventivo riguardo:</b></td><td>" . $_POST["Itm_8_02_1"] . "</td></tr>";
$txtData .= "Nome: " . $_POST["Itm_8_02_2"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Nome:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_02_2"] . "</td></tr>";
$txtData .= "Cognome: " . $_POST["Itm_8_02_3"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Cognome:</b></td><td>" . $_POST["Itm_8_02_3"] . "</td></tr>";
$txtData .= "Città : " . $_POST["Itm_8_02_4"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Città :</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_02_4"] . "</td></tr>";
$txtData .= "Indirizzo di posta elettronica: " . $_POST["Itm_8_02_5"] . "\r\n";
$htmData .= "<tr><td width=\"25%\"><b>Indirizzo di posta elettronica:</b></td><td>" . $_POST["Itm_8_02_5"] . "</td></tr>";
$txtData .= "Descrivi a grandi linee le tue esigenze e se preferisci essere ricontattato tramite telefono, specifica  il  numero sul quale possiamo richiamarti: " . $_POST["Itm_8_02_6"] . "\r\n";
$htmData .= "<tr><td width=\"25%\" bgcolor=\"#EEEEEE\"><b>Descrivi a grandi linee le tue esigenze e se preferisci essere ricontattato tramite telefono, specifica  il  numero sul quale possiamo richiamarti:</b></td><td bgcolor=\"#EEEEEE\">" . $_POST["Itm_8_02_6"] . "</td></tr>";
 
// Template
$htmHead = "<table width=\"90%\" border=\"0\" bgcolor=\"#FFFFFF\" cellpadding=\"4\" style=\"font: 11px Tahoma; color: #000000; border: 1px solid #BBBBBB;\">";
$htmFoot = "</table>";
 
//send email to owner
$htmMsg = $htmHead . "<tr><td></td></tr>" . $htmFoot;
$mail = new PHPMailer(true);
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host       = "xxxxxxxxxxxxxxxxx "; // SMTP server
$mail->SMTPAuth   = true;
$mail->Port       = 25;
$mail->Username   = "xxxxxxxxxxxxxx"; // SMTP account username
$mail->Password   = "xxxxxxx";        // SMTP account password
$mail->AddAddress('xxxx@xxxx','PREVENTIVO');
$mail->SetFrom($_POST["Itm_8_00_1"], $_POST["Itm_8_00_2"], $_POST["Itm_8_00_3"], $_POST["Itm_8_00_4"] . " " . $_POST["Itm_8_00_5"], $_POST["Itm_8_00_6"]);
$mail->Subject = 'PREVENTIVO' . $_SERVER['REMOTE_ADDR'];
$mail->MsgHTML("<html><body bgcolor=\"#063A69\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$mail->Send();
 
//send email to user
$htmMsg = $htmHead . "<tr><td>--- NON RISPONDETE A QUESTA E-MAIL ---<br><br> La ringraziamo per averci contattato.<br><br> La service la informa che <br>stiamo analizzando la sua richiesta,<br>le risponderemo appena possibile!<br><br> NON risponda a questa e-mail perchè non è abilitata a ricevere risposte;<br> per ogni necessità deve ritornare sul sito<br> e inviarci un altro modulo compilato con la sua richiesta di informazionidi. GRAZIE <br></td></tr>" . $htmFoot;
 
$usermail = new PHPMailer(true);
$usermail->IsSMTP(); // telling the class to use SMTP
$usermail->Host       = "xxxxxxxxxx"; // SMTP server
$usermail->SMTPAuth   = true;
$usermail->Port       = 25;
$usermail->Username   = "xxxxxxxxxx"; // account username
$usermail->Password   = "xxxxxxxxxx";        // SMTP account password
$usermail->AddAddress($_POST["Itm_8_00_5"], $_POST["Itm_8_00_2"] . " " . $_POST["Itm_8_00_3"]);
$usermail->SetFrom('xxxxxxx@xxxxxxx', 'richiesta preventivo'); 
$usermail->Subject = 'Grazie di averci contattato!'; 
$usermail->MsgHTML("<html><body bgcolor=\"#0000FF\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");
$usermail->Send();
@header("Location:/modulo_risposta_e-mail_privato_x.html"); // redirezione sulla pagina  da personalizzare
?>




Se qualche "santo" tra voi esperti mi può aiutare,
ne sono riconoscente


Grazie!


Edit: cancellati i parametri di autenticazione smtp
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 07 Maggio, 2012, 16:54:03
Ho messo un ECHO sul "send mail to owner" e un uscita prima del "send mail to user"
Ho poi modificato questa riga del "send mail to owner":
$mail->SetFrom($_POST["Itm_8_02_5"], $_POST["Itm_8_02_2"] . " " . $_POST["Itm_8_02_3"]);

Ed il risultato ora è questo:

//Send email to owner
Il mittente è: LUCA
//Send email to user




Poi ho inserito ECHO al "send mail to user" ed il risultato è questo:

//Send email to owner
Il mittente è: LUCA
//Send email to user
Fatal error: Uncaught exception 'phpmailerException' with message 'Invalid address: ' in D:\shared\disinfestazioni_it\disinfestazioni-pulizie-sanificazioni.it\PHPMailer\class.phpmailer.php:462 Stack trace: #0 D:\shared\disinfestazioni_it\disinfestazioni-pulizie-sanificazioni.it\PHPMailer\class.phpmailer.php(408): PHPMailer->AddAnAddress('to', NULL, ' ') #1 D:\shared\disinfestazioni_it\disinfestazioni-pulizie-sanificazioni.it\files\mail_p045_8_02.php(59): PHPMailer->AddAddress(NULL, ' ') #2 {main} thrown in D:\shared\disinfestazioni_it\disinfestazioni-pulizie-sanificazioni.it\PHPMailer\class.phpmailer.php on line 462

Farò altri tentativi
e aggiornerò i risultati in attesa di un aiuto

Grazie



Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: stesil - 07 Maggio, 2012, 17:36:01
Ciao,

controlla i valori di "Itm_8 ......"


$txtData .= "Indirizzo di posta elettronica: " . $_POST["Itm_8_02_5"] . "\r\n";


$usermail->AddAddress($_POST["Itm_8_00_5"], $_POST["Itm_8_00_2"] . " " . $_POST["Itm_8_00_3"]);
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 07 Maggio, 2012, 18:26:40
Grazie!


Più volte capita e più ripeto a me stesso che devo rileggere le righe in DUE persone,
con accanto qualcuno, perché altrimenti a forza di leggere e rileggere gli occhi
mi ingannano e vedo ciò che non esiste.


Avevo controllato più volte ma non mi era apparso quell'errore.


Grazie molte!
Un applauso è poco!
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 22 Maggio, 2012, 11:28:06

...vorrei chiedere,
Nelle stringhe sotto, la riga in rosso è quella che serve ad inviare la mail.
E' possibile far inviare la mail a DUE indirizzi mail invece che ad uno solo?
Basta ripetere quella stringa modificando l'indirizzo di destinazione riportato?



$usermail = new PHPMailer(true);
$usermail->IsSMTP(); // telling the class to use SMTP
$usermail->Host       = "xxxxxxxxxx"; // SMTP server
$usermail->SMTPAuth   = true;
$usermail->Port       = 25;
$usermail->Username   = "xxxxxxxxxx"; // account username
$usermail->Password   = "xxxxxxxxxx";        // SMTP account password
$usermail->AddAddress($_POST["Itm_8_00_5"], $_POST["Itm_8_00_2"] . " " . $_POST["Itm_8_00_3"]);
$usermail->SetFrom('xxxxxxx@xxxxxxx', 'richiesta preventivo');
$usermail->Subject = 'Grazie di averci contattato!';
 $usermail->MsgHTML("<html><body bgcolor=\"#0000FF\"><center>" . $htmMsg . "<br>" . $htmHead . $htmData . $htmFoot . "</center></body></html>");$usermail->Send();
@header("Location:/modulo_risposta_e-mail_privato_x.html"); // redirezione sulla pagina  da personalizzare?>




Grazie!!


Ciao!!
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: stesil - 22 Maggio, 2012, 18:26:00
Ciao, mi posso sbagliare ..... ma la riga che hai evidenziato ( $usermail->SetFrom ) non è il mittente della mail?

Forse devi ripetere due volte

$usermail->AddAddress('secondoindirizzomail@dominio.xx', ' ');

Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: serzio - 22 Maggio, 2012, 19:42:26
Ciao, mi posso sbagliare ..... ma la riga che hai evidenziato ( $usermail->SetFrom ) non è il mittente della mail?

Forse devi ripetere due volte

$usermail->AddAddress('secondoindirizzomail@dominio.xx', ' ');

Si, confermo. Anche se sarebbe più opportuno utilizzare i comandi:

$usermail->AddBCC('primo@dominio1.xxx', 'primo indirizzo');
$usermail->AddBCC('secondo@dominio2.yyy', 'secondo indirizzo');

Il risultato è simile, ma l'uso del BCC (Blind Carbon Copy) piuttosto che del TO consente di mascherare gli indirizzi email dei destinatari ed evitare la diffusione di indirizzi email non necessari a persone potenzialmente sconosciute.
Titolo: Re:Modulo Email con SMTP - websitex5 v8
Inserito da: pyskelletto - 22 Maggio, 2012, 20:26:19
Grazie!


Ci avevo pensato e ci avevo provato (per deduzione, non per abilità)
ma poi il form dava errore.
Invece era il servizio hosting che aveva un problema e dava errore!


Quindi seguendo le vostre indicazioni
funziona correttamente!


Grazie!