Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    problemi con la funzione mail

    Salve a tutti ho scritto una pagina php per l'invio di email sfruttando la funzione mail, ma questa non mi fa partire la mail restituendo sempre false, ecco il codice:

    $query = mysql_query("SELECT * FROM newsletter WHERE idnewsletter = $id");
    $row = mysql_fetch_array($query);
    $oggetto = $row[oggetto];
    $messaggio = $row[messaggio];
    $body = "testata";
    $body = $body . "----------------------------------------------";
    $body = $body . stripslashes(t2h($messaggio));
    $body = $body . "----------------------------------------------";


    // invio newsletter
    $query = mysql_query("SELECT * FROM utenti_newsletter");
    while ($row=mysql_fetch_array($query)) {
    $dest = $row[email];
    $intestazioni = "MIME-Version: 1.0\r\n";
    $intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $intestazioni .= "To: $dest <$dest>\r\n";
    $intestazioni .= "From: Norcia Food <info@norciafood.it>\r\n";
    if(mail($dest, $oggetto, $body, $intestazioni) or die ("".mysql_error())){

    // update newsletter inviata
    $d = time();
    mysql_query("UPDATE newsletter SET ifinviata=1,data_invio='".$d."' WHERE idnewsletter = $id");
    }
    }

    c'è qualche errore??? grazie a tutti

  2. #2
    if(mail($dest, $oggetto, $body, $intestazioni) or die ("".mysql_error()))

    Innanzitutto non vedo ke c'entra che tu faccia uscire la descrizione di errore di MySQL in una funzione di PHP!
    Se nel file php.ini hai messo ad on track_errors allora PHP memorizza nella variabile $php_errormsg l'ultimo errore o warning.

    Quindi prova a scrivere

    if(mail($dest, $oggetto, $body, $intestazioni) or die ("".$php_errormsg))

    e vedi ke errore ti ritorna.

  3. #3
    non mi ritorna alcun errore, mi sa che il server dove tengo il mio sito non ha questo parametro impostato nel php.ini, da cosa può dipendere il fatto che non spara le mail

  4. #4
    nel file php.ini devi anke settare i parametri smtp, smtp_port, etc.......

  5. #5
    quelli sono gia settati, anche perche su un altro sito che ho sullo stesso server la mail viene mandata

  6. #6
    prova a fare così:
    $intestazioni = "From: Norcia Food <info@norciafood.it>\r\n";

    if(mail($dest, $oggetto, $body, $intestazioni) ........

    in tal modo vedi se l'errore sta in $intestazioni.

    Se neanche così funziona, prova a semlificare pure $messaggio, mettendo $messaggio = "Prova";
    Almeno così abbiamo qualche indizio in +.

  7. #7
    funziona, l'errore era nell'intestazione, ho messo questa intestazione:

    $intestazioni = "From: {$_SERVER['SERVER_NAME']}\r\n";
    $intestazioni = $intestazioni . "Reply-To: info@{$_SERVER['SERVER_NAME']}\r\n";
    $intestazioni = $intestazioni . "X-Mailer: PHP/" . phpversion();

    ed ora funziona, l'unico problema è che nella mail dovrei inviare HTML, che intestazione devo usare?

  8. #8
    Dovrebbe essere sufficiente che tu aggiuga questo:

    $intestazioni .= "MIME-Version: 1.0\n";
    $intestazioni .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
    $intestazioni .= "Content-Transfer-Encoding: 7bit\n\n";


    A proposito ho visto ke scrivi:

    $intestazioni = $intestazioni . "....

    è lo stesso ke srivere $intestazioni .= "........

    In pratica con .= aggiungi qualcosa alla variabile $intestazioni.

    Ciao.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.