Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766

    Funzione mail() non esce il mittente (script di gm)

    seguendo la guida di gm sul suo sito ho cercato di associarla alle mie esigenze.

    In pratica l'email che devo inviare la mando a un centinaio di indirizzi presenti in un database.

    Lo script manda l'email ma non esce il nome che ho impostato io, ma quello predefinito del server.

    questo e' il codice che sto usando:
    Codice PHP:
    <?php
    $host 
    "miohost";
    $db_nome "miodatabase";
    $db_user "miouser";
    $db_pass "miapass";
    $nome_tabella "nome_della_tabella";
    $connessione =  @mysql_connect("$host","$db_user","$db_pass")
    or die(
    "Impossibile stabilire una connessione.");
    $db = @mysql_select_db($db_nome$connessione)
    or die(
    "Impossibile selezionare il database.");
    $sql "select * from $nome_tabella order by id asc";
    $risultato = @mysql_query($sql,$connessione)
    or die(
    "Impossibile eseguire l'interrogazione.");
    while (
    $riga mysql_fetch_assoc($risultato)) {
    $id $riga['id'];
    $email $riga['email'];
    $nome="Ufficio";
    $email_nostra="info@miosito.it";
    $mittente="$nome <$email_nostra>";


    // RENDIAMO LO SCRIPT COMPATIBILE CON LE VERSIONI DI PHP < 4.1.0
    if(!isset($_POST)) $_POST $HTTP_POST_VARS;
    if(!isset(
    $_FILES)) $_FILES $HTTP_POST_FILES;

    // RIPULIAMO I VARI CAMPI DEL MODULO
    $Soggetto trim(stripslashes($_POST["Soggetto"]));
    $Contenuto trim(stripslashes($_POST["Contenuto"]));

    // ASSEGNIAMO A VARIABILI PIU' LEGGIBILI, LE PROPRIETA' DELL'ALLEGATO
    $attach $_FILES["allegato"]["tmp_name"];
    $file_name $_FILES["allegato"]["name"];
    $file_type $_FILES["allegato"]["type"];
    $file_size $_FILES["allegato"]["size"];

    // DELIMITATORE
    $boundary md5(uniqid(microtime()));

    // APRIAMO L'ALLEGATO PER LEGGERLO E CODIFICARLO
    $file = @fopen($attach"r");
    $contents = @fread($file$file_size);
    $encoded_attach chunk_split(base64_encode($contents));
    @
    fclose($file);

    // INTESTAZIONI DELLA MAIL

    $mail_headers .= "MIME-version: 1.0\n";
    $mail_headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\n";
    $mail_headers .= "Content-transfer-encoding: 7BIT\n";
    $mail_headers .= "X-attachments: $file_name\n";


    // COSTRUIAMO IL CORPO DELLA MAIL
    $mail_body "--$boundary\n";
    $mail_body .= "Content-Type: text/plain; charset=us-ascii\n";
    $mail_body .= "Content-Transfer-Encoding: 7bit\n\n";
    $mail_body .= "$Contenuto\n\n";
    $mail_body .= "--$boundary\n";
    $mail_body .= "Content-type: $file_type; name=\"$file_name\"\n";
    $mail_body .= "Content-Transfer-Encoding: BASE64\n";
    $mail_body .= "Content-disposition: attachment; filename=\"$attach_name\"\n\n";
    $mail_body .= "$encoded_attach\n";
    $mail_body .= "--$boundary--\n";


    // INVIO DELLA MAIL
    if(@mail($email$Soggetto$mail_body$mail_headers)) { // SE L'INVIO E' ANDATO A BUON FINE...
        
    echo "La mail è stata inoltrata con successo.";
    } else {
    // ALTRIMENTI...
        
    echo "Si sono verificati dei problemi nell'invio della mail.";
    }
    }
    ?>
    Sono anche riuscito a far uscire il nome impostato nei parametri sopra, ma poi l'email si leggeva male, usciva una cosa cosi':
    codice:
    --532ad06c1fe9d0f03376f1836481e47a
    Content-Type: text/plain; charset=us-ascii
    Content-Transfer-Encoding: 7bit
    
    testo scritto nel corpo del messaggio
    
    --532ad06c1fe9d0f03376f1836481e47a
    Content-type: ; name=""
    Content-Transfer-Encoding: BASE64
    Content-disposition: attachment; filename=""
    
    
    --532ad06c1fe9d0f03376f1836481e47a--
    non so dove devo piazzare questo:
    $mail_headers="From: $mittente";

    Chi mi sa aiutare

  2. #2

    Re: Funzione mail() non esce il mittente (script di gm)

    Originariamente inviato da Tr|k`Tr4k
    non so dove devo piazzare questo:
    $mail_headers="From: $mittente";
    prima di tutti gli altri mail headers.. perà con un \n alla fine mi pare


  3. #3
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766

    Re: Re: Funzione mail() non esce il mittente (script di gm)

    Originariamente inviato da }gu|do[z]{®©
    prima di tutti gli altri mail headers.. perà con un \n alla fine mi pare

    ho provato ma mi arriva l'email cosi:
    codice:
    --951b017c137897519eb5abee36860993
    Content-Type: text/plain; charset=us-ascii
    Content-Transfer-Encoding: 7bit
    
    prova invio email
    
    --951b017c137897519eb5abee36860993
    Content-type: ; name=""
    Content-Transfer-Encoding: BASE64
    Content-disposition: attachment; filename=""
    
    
    --951b017c137897519eb5abee36860993--
    ed ho messo come dicevi tu:

    Codice PHP:
    // INTESTAZIONI DELLA MAIL
    $mail_headers="From: $mittente\n"
    $mail_headers .= "MIME-version: 1.0\n";
    $mail_headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\n";
    $mail_headers .= "Content-transfer-encoding: 7BIT\n";
    $mail_headers .= "X-attachments: $file_name\n";
    $mail_headers="From: $mittente"

  4. #4

    Re: Re: Re: Funzione mail() non esce il mittente (script di gm)

    Originariamente inviato da Tr|k`Tr4k
    Codice PHP:
    // INTESTAZIONI DELLA MAIL
    $mail_headers="From: $mittente\n"
    $mail_headers .= "MIME-version: 1.0\n";
    $mail_headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\n";
    $mail_headers .= "Content-transfer-encoding: 7BIT\n";
    $mail_headers .= "X-attachments: $file_name\n";
    $mail_headers="From: $mittente"
    se magari levi quello alla fine.......

    cmq prova anche con \r\n al posto di \n... in tutte le righe

  5. #5
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766

    Re: Re: Re: Re: Funzione mail() non esce il mittente (script di gm)

    Originariamente inviato da }gu|do[z]{®©
    se magari levi quello alla fine.......

    cmq prova anche con \r\n al posto di \n... in tutte le righe
    aahahahahhaah, pensavo di aver fatto control x... invece ho solo copiato.

    Solo una cosa:
    quando ricevo una email senza allegato, mi esce lo stesso in allegato un file vuoto chiamato ATT0000029.txt

    Come mai?

  6. #6

    Re: Re: Re: Re: Re: Funzione mail() non esce il mittente (script di gm)

    Originariamente inviato da Tr|k`Tr4k
    aahahahahhaah, pensavo di aver fatto control x... invece ho solo copiato.

    Solo una cosa:
    quando ricevo una email senza allegato, mi esce lo stesso in allegato un file vuoto chiamato ATT0000029.txt

    Come mai?
    sei tu che quando invii l'e-mail devi dire se c'è allegato o meno... e quindi aggiungere questo

    $mail_headers .= "MIME-version: 1.0\n";
    mail_headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\n";
    $mail_headers .= "Content-transfer-encoding: 7BIT\n";
    $mail_headers .= "X-attachments: $file_name\n";

    solo quando c'è il file...

  7. #7
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766

    Re: Re: Re: Re: Re: Re: Funzione mail() non esce il mittente (script di gm)

    Originariamente inviato da }gu|do[z]{®©
    sei tu che quando invii l'e-mail devi dire se c'è allegato o meno... e quindi aggiungere questo

    $mail_headers .= "MIME-version: 1.0\n";
    mail_headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\n";
    $mail_headers .= "Content-transfer-encoding: 7BIT\n";
    $mail_headers .= "X-attachments: $file_name\n";

    solo quando c'è il file...
    ho provato, ma esce sempre questo allegato .txt

    Mi spiego,
    se invio l'email con un allegato che scelgo, essa parte senza problemi e invia l'allegato scelto.

    Se invio l'email senza allegati, quando visualizzo l'email arrivata vedo che nel messaggio c'e' sempre allegato un file chiamato ATT00029.txt


  8. #8
    scusa....

    oltre quello è questo che va eliminato...

    $mail_body = "--$boundary\n";
    $mail_body .= "Content-Type: text/plain; charset=us-ascii\n";
    $mail_body .= "Content-Transfer-Encoding: 7bit\n\n";
    $mail_body .= "$Contenuto\n\n";
    $mail_body .= "--$boundary\n";
    $mail_body .= "Content-type: $file_type; name=\"$file_name\"\n";
    $mail_body .= "Content-Transfer-Encoding: BASE64\n";
    $mail_body .= "Content-disposition: attachment; filename=\"$attach_name\"\n\n";
    $mail_body .= "$encoded_attach\n";

    Se non c'è l'allegato è inutile utilizzare boundary e roba varia.. invia direttamente il contenuto come si fa normalmente con la funzione mail...

  9. #9
    Utente di HTML.it L'avatar di Tr|k`Tr4k
    Registrato dal
    Jul 2002
    Messaggi
    2,766
    no, non voglio eliminare la possibilita' di inviare un allegato.

    Voglio solo che quando mando un email senza allegato non compaia quel txt allegato da solo all'email

  10. #10
    Originariamente inviato da Tr|k`Tr4k
    no, non voglio eliminare la possibilita' di inviare un allegato.
    non ho mai detto questo...

    Voglio solo che quando mando un email senza allegato non compaia quel txt allegato da solo all'email
    m ripeto:
    "sei tu che quando invii l'e-mail devi dire se c'è allegato o meno... "

    insomma.. se c'è l'allegato fai in un mdo, se non c'è non aggiungi gli header e tutto il resto...

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.