PDA

View Full Version : [PHP] La funzione mail fa i capricci


Iuzzo
27-06-2006, 18:41
Ciao a tutti, ho un problema... uno strano problema, che mi tormenta la vita!!!
Veniamo al dunque:
PREMESSA: lo stesso lavoro è publicato sul mio spazio di Aruba che uso come prova(server windows), ma anche un server (sempre windows) che non so dove sta su cui è ospitato il vero sito, ed è lì che deve funzionare.
I FATTI:
Ho creato un sito di ecommerce in php, che al completamento di un ordine, invia un email al gestore del sito ed a chi ha effettuato l'ordine. Sul sever di prova tutto ok, le email arrivano alla velocità della luce. Sul server definitivo invece si manifesta uno strano problema: le email inviate a indirizzi residenti su quel server mail stesso, o non arrivano, o arrivano con un ritardo variabile dai 20 ai 40 minuti. Mi spiego meglio... Il server in questione fa sia da web server, che da mail sarver, il sito immaginiamo si chiama www.pippo.it... lo strano problema si manifesta solo quando con la funzione mail() invio le email ad indirizzo del tipo [email protected].

Il gestore del server secondo me sta messo piuttosto male x quanto riguarda il php, e quindi non mi sa dare molto aiuto, fermo restando che il problema dovrebbe essere il loro, anche se io ne pago le conseguenze. La funzione che utilizzo per inviare le email è la seguente, e come ripeto, funziona perfettamente su aruba, e su indirizzi diversi da [email protected]..

function inviaMail($mailFrom, $intestazioneFrom, $mailTo, $intestazioneTo, $subject, $message){

// configuro l'header dell'email
$header = "MIME-Version: 1.0\r\n";
$header .= "Content-type: text/html; charset=iso-8859-1\r\n";
$header .= "Organization: $intestazioneFrom\r\n";
$header .= "Content-Transfer-encoding: 8bit\r\n";
$header .= "From: $intestazioneFrom<$mailFrom>\r\n";
$header .= "To: $intestazioneTo <$mailTo>\r\n";

$result = mail($mailTo, $subject, $message."\r\n", $header);

if($result) return true;
else die(EMA_ERROR);

return false;
}

il corpo del messaggio è formattato html, e alla fine di ogni riga è presente "\r\n"

Datemi una mano... vi pregooooooooo...

Grazie a tutti
Marco

Xalexalex
27-06-2006, 20:21
Non saprei cosa può essere di preciso, ma per ora prova a settare nel php.ini del server definitivo, come server SMTP quello del sito di aruba.

Ciaozz,
Alex

Iuzzo
27-06-2006, 21:05
Ora vedo che server hanno, poi domani lo dirò a chi "dovrebbe" fare l'amministratore del sistema... :rolleyes:

... sta cosa mi manda fuori di testa... è possibile che un cliente deve andare a dire a quello che viene pagato (tra l'altro si prendono 110 euri per il dominio) quello che deve fare? E poi il server è pure una chiavica... me ne sono accorto con l'esecuzione di un particolare script su aruba che mi è durata soli 3 secondi, mentre su questo che mi sta facendo morire, mi ha sforato per 4 volte i 30 sec con conseguente blocco dell script.
Scusate lo sfogo... :muro:

Chi ha altre soluzioni si faccia avanti.

ps: grazie Alessandro::Xalexalex ;)

Iuzzo
27-06-2006, 21:15
su Aruba, il server mail, è indicato con "localhost"

non è che posso modificare le impostazioni solo temporanteamente per l'esecuzione di uno script?

così non devo aspettare nessuno e me la cavo da solo...
chi fa da se fa x tre :D