Visualizzazione risultati 1 fino 17 di 17

Discussione: Inviare mail in HTML a destinatari multipli

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito Inviare mail in HTML a destinatari multipli

    Buonasera a tutti,
    ho trovato in rete le istruzioni per creare uno script php che invii delle email in HTML a più destinatari. Ho provato il codice e funziona, ma funziona in modo un po' strano, nel senso che le mail le ricevo ma le ricevo sempre allo stesso indirizzo ma ogni giorno una.

    Esempio: Ho tre destinatari, invio la mail e mi dovrebbero giungere sui miei indirizzi di posta i messaggi ma non è cosi. Ricevo il primo ma no gli altri due, aspettando un giorno ricevo il secondo e il terzo giorno la terza mail.

    Vi posto lo script per dare un occhiata sperando che mi potete aiutare.

    Codice HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Senza nome 1</title>
    </head>
    
    <body>
    <form action="invia.php" method="post">
    <input type="text" name="oggetto" value="Prova (Oggetto)" />
    <input type="text" name="messaggio" value="msg" />
    <input type="submit" value="Invia Mail" />
    </form>
    </body>
    
    </html>
    File invia.php

    Codice PHP:
    <?
    /// Recupero i dati dal form
    $ogg = $_POST['oggetto'];
    $msg = $_POST['messaggio'];

    /// Creo la mail in HTML
    $header = "From: Miki92 <miki92@altervista.org>\n";
    $header .= "Bcc: indirizzo2@provider.it, indirizzo3@provider.it\n";
    $header .= "X-Mailer: PHP\n";
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: text/html; charset=\"utf-8\"\n";
    $header .= "Content-Transfer-Encoding: 7bit\n\n";

    /// Creo la mail aggiungendo i vari dati
    $dest = "miki92@altervista.org";
    mail($dest,$ogg,$msg,$header);
    echo
    "<a href=\"javascript:history.go(-1)\">Azione Eseguita: Torna Indietro.</a>";
    ?>
    Ultima modifica di miki92 : 10-11-2007 alle ore 19.51.08
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    Guest

    Predefinito

    Codice PHP:
    <?
    /// Recupero i dati dal form
    $ogg = $_POST['oggetto'];
    $msg = $_POST['messaggio'];

    /// Creo la mail in HTML
    $header = "From: Miki92 <miki92@altervista.org>\n";
    $header .= "Bcc: indirizzo2@provider.it, indirizzo3@provider.it\n";
    $header .= "X-Mailer: PHP\n";
    $header .= "MIME-Version: 1.0\n";
    $header .= "Content-Type: text/html; charset=\"utf-8\"\n";
    $header .= "Content-Transfer-Encoding: 7bit\n\n";

    /// Creo la mail aggiungendo i vari dati
    $to=array(
    0 => "IndirizzoMail 1 ",
    1 => "IndirizzoMail 3 ",
    2 => "IndirizzoMail 3 "
    );
    for (
    $i=0;$i<3;$i++) {
    if (
    mail($to[$i],$ogg,$msg,$header)) {
    echo
    "<a href=\"javascript:history.go(-1)\">Azione Eseguita: Torna Indietro.</a>";
    }
    }
    ?>
    dovrebbe essere corretto

  3. #3
    Guest

    Predefinito

    metti uno sleep() tra un invio e l'altro, altrimenti altervista le blocca tutte XD

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    @comunitavirtuali No se uso il campo "Bcc" per inviare le mail a più destinatari.
    @Erebus Grazie dello script ma non mi occorre che le mail vengano "inserite" in un array perchè successivamente farò il modo che i contatti vengano prelevati tramite un select dallo stesso form o da un file di testo.
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Ospite Guest

    Predefinito

    Citazione Originalmente inviato da comunitavirtuali Visualizza messaggio
    metti uno sleep() tra un invio e l'altro, altrimenti altervista le blocca tutte XD
    Lo script andrebbe in timeout
    Citazione Originalmente inviato da erebus
    dovrebbe essere corretto
    Quel metodo non si può utilizzare perchè AlterVista prevede una pausa di 2 o 3 secondi (non ricordo di preciso) tra l'invio delle e-mail.
    L'unico modo è utilizzare CC o BCC/CCN, come nello script di Miki92.
    Ciao!

  6. #6
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Si ha ragione probid, AlterVista limita l'invio di un tot di mail ogni 2 secondi. E' comunque ho bisogno di utilizzare un campo "Bcc" cosi da nascondere gli indirizzi a gli altri destinatari. Come ho detto, nel mio script la cosa strana e che ricevo una mail al giorno!
    Apprezzi l'aiuto? Offrimi un caffè!

  7. #7
    L'avatar di Xsescott
    Xsescott non è connesso AlterGuru
    Data registrazione
    08-02-2004
    Messaggi
    1,413

    Predefinito

    crea un foreach che inserisca in una stringa gli indirizzi email separati da una virgola e poi li invii tramite il normale il bcc..
    "Quando il potere dell'amore supererà l'amore per il potere il mondo conoscerà la pace" Jimmy Hendrix


    [ Richiesta: http://www.unibologna.eu/ ] --> [Risposta: http://www.magazine.unibo.it/Magazin...al_Portale.htm Morale] -->[ http://www.anti-phishing.it/news/art...s.13062007.php ]
    consoliwebsite.altervista.org

  8. #8
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da Xsescott Visualizza messaggio
    crea un foreach che inserisca in una stringa gli indirizzi email separati da una virgola e poi li invii tramite il normale il bcc..
    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Come ho detto, nel mio script la cosa strana e che ricevo una mail al giorno!
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  9. #9
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Funcool tu ridi a me sembra strano che ricevo tre e-mail in tre giorni diversi mentre dovrei riceverli al massimo con un po' di tempo di distacco l'una dall'altra. Approposito ho notato che le mail mi giungono solo su miki92[at]altervista[dot]org e no su gli altri.
    Apprezzi l'aiuto? Offrimi un caffè!

  10. #10
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Rido perché tutti ti propongono una soluzione che hai già scritto nel primo messaggio.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  11. #11
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Ah capisco. Però tornando al mio problema non mi sai dare una soluzione? Un modo alternativo?
    Apprezzi l'aiuto? Offrimi un caffè!

  12. #12
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Il modo è quello, più che altro sembra un problema del server di AlterVista.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  13. #13
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Dovrei comunicarlo a Gianluca? Devo aprire un nuovo topic? "Tu mi dici quello che devo fare ... ed io lo faccio!"
    Apprezzi l'aiuto? Offrimi un caffè!

  14. #14
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Dovrei comunicarlo a Gianluca?
    Gianluca dovrebbe leggere da solo questa discussione.

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Devo aprire un nuovo topic?
    No, una discussione direi che basta.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  15. #15
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Ho provato con un altro codice:
    Codice HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Senza nome 1</title>
    </head>
    
    <body>
    <form action="invia.php" method="post">
    <input type="text" name="oggetto" value="Prova (Oggetto)" />
    <input type="text" name="messaggio" value="msg" />
    <select name="altri">
    <option value="indirizzo@provider.it,indirizzo1@provider.it">Altri Indirizzi 1</option>
    <option value="indirizzo2@provider.it,indirizzo3@provider.it">Altri Indirizzi 2</option>
    </select>
    <input type="submit" value="Invia Mail" />
    </form>
    </body>
    
    </html>
    Codice PHP:
    <?php
    // Recupero il valore dei campi del form
    $destinatario = $_POST['destinatario'];
    $mittente = $_POST['mittente'];
    $oggetto = $_POST['oggetto'];
    $messaggio = $_POST['messaggio'];

    // Valorizzo le variabili relative all'allegato
    $allegato = $_FILES['allegato']['tmp_name'];
    $allegato_type = $_FILES['allegato']['type'];
    $allegato_name = $_FILES['allegato']['name'];

    // Creo 2 variabili che riempir pi avanti...
    $headers = "From: " . $mittente;
    $msg = "";

    // Verifico se il file stato caricato correttamente via HTTP
    // In caso affermativo proseguo nel lavoro...
    if (is_uploaded_file($allegato))
    {
    // Apro e leggo il file allegato
    $file = fopen($allegato,'rb');
    $data = fread($file, filesize($allegato));
    fclose($file);

    // Adatto il file al formato MIME base64 usando base64_encode
    $data = chunk_split(base64_encode($data));

    // Genero il "separatore"
    // Serve per dividere, appunto, le varie parti del messaggio.
    // Nel nostro caso separer la parte testuale dall'allegato
    $semi_rand = md5(time());
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";

    // Aggiungo le intestazioni necessarie per l'allegato
    $headers .= "\nMIME-Version: 1.0\n";
    $headers .= "Content-Type: multipart/mixed;\n";
    $headers .= " boundary=\"{$mime_boundary}\"";

    // Definisco il tipo di messaggio (MIME/multi-part)
    $msg .= "This is a multi-part message in MIME format.\n\n";

    // Metto il separatore
    $msg .= "--{$mime_boundary}\n";

    // Questa la parte "testuale" del messaggio
    $msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
    $msg .= "Bcc: $_POST['altri'];\n";
    $msg .= "Content-Transfer-Encoding: 7bit\n\n";
    $msg .= $messaggio . "\n\n";

    // Metto il separatore
    $msg .= "--{$mime_boundary}\n";

    // Aggiungo l'allegato al messaggio
    $msg .= "Content-Disposition: attachment;\n";
    $msg .= " filename=\"{$allegato_name}\"\n";
    $msg .= "Content-Transfer-Encoding: base64\n\n";
    $msg .= $data . "\n\n";

    // chiudo con il separatore
    $msg .= "--{$mime_boundary}--\n";
    $msg .="\n\n\n----------------------------------------------------------------------------------------- \nQuesta Mail ti stata spedita usando il form di Miki92, per abusi o per qualsiasi problema nell mail qui sotto sono contenuti i dati del mittente. Miki92 non si assume nessuna responsabilit sul contenuto della mail. - http://miki92.altervista.org/ \n\n";
    $ora_array= getdate();
    $ora= "Messaggio inviato alle ".$ora_array['hours'].":".$ora_array['minutes'].":".$ora_array['seconds']." del ".$ora_array['mday']."/".$ora_array['mon']."/".$ora_array['year']."";
    $msg .= $ora . "\n";
    $ip = getenv("REMOTE_ADDR");
    $msg .="L'indirizzo IP del mittente : ".$ip;
    }
    else
    {
    $messaggio .="\n\n\n----------------------------------------------------------------------------------------- \nQuesta Mail ti stata spedita usando il form di Miki92, per abusi o per qualsiasi problema nell mail qui sotto sono contenuti i dati del mittente. Miki92 non si assume nessuna responsabilit sul contenuto della mail. - http://miki92.altervista.org/ \n\n";
    $ora_array= getdate();
    $ora= "Messaggio inviato alle ".$ora_array['hours'].":".$ora_array['minutes'].":".$ora_array['seconds']." del ".$ora_array['mday']."/".$ora_array['mon']."/".$ora_array['year']."";
    $messaggio .= $ora. "\n";
    $ip = getenv("REMOTE_ADDR");
    $messaggio .="L'indirizzo IP del mittente : ".$ip;
    $msg = $messaggio;
    }
    if (
    mail($destinatario, $oggetto, $msg, $headers))
    {
    /// Creo delle variabili per la risposta utente
    $oggut = "Autorisposta per: $oggetto";
    $msgut = "Gentilissimo $mittente, \nGrazie per aver contattato Miki92 ti risponderemo entro 24h ore e se non riceverai risposta significherà che si sono verificati degli errori durante l'invio della mail o ci sono problemi del webmaster. \n\nDistinti Saluti \n<b>Miki92</b>";
    mail($mittente,$oggut,$msgut,"From: miki92@altervista.org");
    echo
    "<script type=\"text/javascript\">alert('Mail inviata con successo! Riceverai risposta al pi presto.')</script>";
    echo
    "<script type=\"text/javascript\">history.go(-1)</script>";
    }else{
    echo
    "<script type=\"text/javascript\">alert('Errore: La Mail non stata inviata!')</script>";
    echo
    "<script type=\"text/javascript\">history.go(-1)</script>";
    }
    ?>
    Il risultato è sempre lo stesso, prego Gianluca di prendere provvedimenti.
    Apprezzi l'aiuto? Offrimi un caffè!

  16. #16
    Guest

    Predefinito

    Citazione Originalmente inviato da miki92 Visualizza messaggio
    Ho provato con un altro codice:

    Codice PHP:
    <?php
    // Recupero il valore dei campi del form
    $destinatario = $_POST['destinatario'];
    $mittente = $_POST['mittente'];
    $oggetto = $_POST['oggetto'];
    $messaggio = $_POST['messaggio'];

    }
    ?>
    scusate l'ignoranza ragazzi, ma leggendo questo thread ho chiarito diverse idee.
    volevo sapere una cosa che per voi di sicuro risulterà semplice, e cioè come faccio a inserire nella stringa $messaggio oltre al form messaggio $_POST['messaggio'] anche gli altri form, $_POST['oggetto']; $_POST['mittente']; ,ecc...

    ho provato a scrivere tipo

    Codice PHP:
    <?php
    // Recupero il valore dei campi del form
    $destinatario = $_POST['destinatario'];
    $mittente = $_POST['mittente'];
    $oggetto = $_POST['oggetto'];
    $messaggio = $_POST['messaggio, oggetto, mittente, destinatario'] ;

    }
    ?>
    ma ricevo delle mail vuote

    -

    ho gia risolto facendo così

    Codice PHP:
    <?
    /// Creo la mail aggiungendo i vari dati
    $dest = "dest@altervista.org";
    mail($dest,$ogg,$msg,$msg1,$msg2,$header);
    echo
    "<a href=\"javascript:history.go(-1)\">Azione Eseguita: Torna Indietro.</a>";
    ?>
    [
    -
    e invece no...se metto molti msg non va =(
    heeeelp
    -
    ho risolto lavorando sulle stringhe in php =)
    Ultima modifica di darkwolf : 19-02-2011 alle ore 13.53.25

  17. #17
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,556

    Predefinito

    È un topic del 2007 ed hai fatto ben 4 post consecutivi
    Chiudo invitandoti a leggere il regolamento del forum: http://forum.it.altervista.org/php-m...nto-forum.html

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •