Newsgroup: it.comp.www.php
Titolo: Funzione mail() e problemi invio

Ciao a tutti!
La situazione in cui mi trovo è la seguente: da una pagina PHP devo inviare un messaggio ad un
indirizzo che ho specificato nella variabile $email, e per farlo utilizzo questo comando:
mail ( "$email", "$subject", "$message", "From:$nome<$mittente>");
Con le altre 4 variabili così impostate:
$subject = "Prova";
$message = "Messaggio di prova";
$nome = "Hunter";
$mittente = 
pr...@email.it
;
Il problema è questo: il messaggio viene correttamente inviato alle caselle postali @
libero.it
,
@
iol.it
 e @
email.it
, mentre ripetendo l'esperimento con indirizzi rispettivamente @
freehtml.it
 e
@
supereva.it
 il messaggio NON arriva a destinazione.
Ho il sospetto che il problema potrebbe essere il parametro ("From:$nome<$mittente>"), che forse non
viene interpretato correttamente dai server di 
freehtml.it
 e 
supereva.it
, ma non riesco a venire a
capo del problema.
Sono arrivato a sospettare questo quando ho visto che il mio programma antispam riconosce i messaggi
così inviati con "Mittente non specificato", se non sbaglio, o forse come "Destinatario non valido";
in ogni caso i messaggi in Outlook sembrano totalmente normali, con mittente tutto...
Qualcuno ha qualche idea a riguardo su come potrei modificare il comando nella mia pagina?
Vi ringrazio in anticipo per l'aiuto! A presto!
Hunter!
*******************************************************
*             
E-MAIL--...@email.it
               *
*     Esplora i misteri! Visita la Camera Gialla!     *
*           
http://www.cameragialla.it
                *
*******************************************************

$mittente = 
pr...@email.it
;
Ciao!
Questa var $mittente = 
pr...@email.it
;
dovresi scriverla cosě $mittente = "
pr...@email.it
";
E prova a modificare questo:
From:$nome<$mittente> con
From:$nome <$mittente> lasciando lo spazio tra $nome e <$mittente>
Ciao
CR

in ogni caso i messaggi in Outlook sembrano totalmente normali, con mittente tutto...
Questo non vuol dire. Ad Outlook piace la fetenzia: lo fa sentire a casa.
Prova a leggerli con Eudora o Netscape Messenger, oppure, confrontali con
un messaggio sicuramente "buono".
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.

 Leonardo
Ciao, Hunter...

";



Scusa ma un codice di base che funziona è simile a questo, prova a
confrontarlo con il tuo o testalo e vedi cosa succede:
$from="
tuae...@latuaemail.com
";
$email="
ma...@destinatario.com
";
$message="Questo è un test, grazie per aver partecipato";
$subject="Test";
$headers  = "From: $from\r\n";
$headers .= "";
$message .= "Ciao!";
@$send=mail($email,$subject,$message,$headers);
if($send==1){
echo"Ok email inviata";
}else{
echo"Errore: email non inviata";
 }
Se magari posti il codice x intero ne capiamo qualche cosa di più
Ciao!
CR

";
Si, in effetti ho fatto così e non cambia nulla...
Proverò ancora con altri esperimenti, ma sto perdendo le speranze!... :-(( Grazie dell'aiuto!
Hunter!

 CR
Ciao e grazie dell'aiuto prezioso!
Hunter

Allora, ho scoperto che i problemi sono creati dal testo del messaggio che provo ad inviare;
$message1 = "$squadra ha fatto la seguente offerta:\n$giocatore (Costo totale: $costo crediti)
offrendo\n$ceduto (Offerta totale: $offerta crediti).\nSurplus: $surplus crediti.";
$message2 = "$squadra\n\nha fatto un'offerta per l'acquisto di\n\n$giocatore.";
$message3="cavolo";
$message4="cavolo\ncavolo";
I 4 messaggi riportati sopra sono, rispettivamente, i due messaggi che servono in particolare a me
(message1 e 2), mentre gli ultimi 2 sono solo prove.
Ho provato a inviare tutti e 4 ai 3 indirizzi che mi interessano (@
email.it
, @
freehtml.it
 e
@
supereva.it
), e questi sono i risultati:
@
email.it
: Ricevuti tutti e 4 correttamente.
@
freehtml.it
: Ricevuto solo "message3".
@
supereva.it
: Ricevuto un bel nulla...
Intuisco che qualche problema per l'indirizzo @freehtml possa essere rappresentato dal "caporiga"
\n, visto che arriva solo message3... ma in questo caso cosa dovrei fare per ricevere message1 e 2
come servono a me?
E Supereva perchè non accetta proprio nulla?!?
Il mistero si infittisce...


Per il campo $message secondo me faresti meglio ad usare:
$message .="$squadra ha fatto la seguente offerta:\n$giocatore (Costo
totale: $costo crediti)
offrendo\n$ceduto (Offerta totale: $offerta crediti).\nSurplus: $surplus
crediti\n\n.";
$message .="$squadra\n\nha fatto un'offerta per l'acquisto
di\n\n$giocatore.\n\n";
$message .="altra parte del msg\n\n";
$message .="altra parte del msg";
Provaci cosě
Ciao
CR

Allora...
A quanto pare freehtml non digerisce i \n isolati, ma se sostituisco il tutto con \r\n tutto
funziona.
Ho provato a creare degli header quanto piů completi possibile, ma Supereva non riceve un bel
niente.
Ho aggiunto il quinto parametro -
fem...@mittente.it
 ma non cambia nulla...
Altre idee?
Ciao da Hunter!


come servono a me?
Prova a metterci \r\n. Mi sembra assurdo & inconcepibile, ma qui ormai
siamo nell'esoterico.
Prova anche a mandare una riga sempre piu' lunga:
cavolo
cavolocavolo
cavolocavolocavolo
tante volte c'entrasse quello.
Leonardo mah


 Leonardo mah
Mi unisco al "mah!", ma a quanto ho visto non sono l'unico ad aver avuto questo problema!...
Ciao e grazie! Hunter!