Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 39

Discussione: email multipla

  1. #1
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822

    email multipla

    da una tabella controllo i record che hanno il campo "ammesso" settato su "1" e ne ricavo il valore "email", dopodichè vorrei spedire la stessa mail a tutte le email del risultato di questa query ma come si fa??


    il mio script:
    Codice PHP:
    $querymysql_query("SELECT * FROM newusers WHERE ammesso = '1' ")
            or die(
    "Query Fallita: " mysql_error());
    while (
    $dati mysql_fetch_array($query))
    {

    echo 
    "{$dati['email']}"// <--- mi restitiusce correttamente l'elenco degli indirizzi email.

    }

    $mittente=$_POST['mittente'];
    $oggetto=$_POST['oggetto'];
    $testo=$_POST['testo'];

    //la variabile $dest vorrei che abbia un valore come questo:
    $dest="email1@dominoi.it;email2@dominio.com;email3@dimoiniio.net"

    $subject=$oggetto;
    $mbody="<html><body><font color=\"A0D042\">[b][i]Mail spedita dal server **** ***[/i][/b][i][/i]</font>
    "
    ;
    $mbody.=$testo;
    $mbody.="</body></html>";
    $headers  "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: ".$mittente."\r\n";
    $headers .= "Reply-To: ".$dest."\r\n";
    mail($dest$subject$mbody$headers); 
    leggere le righe commentate

  2. #2
    Non puoi spedirla così puoi creare una copia carbone tramite gli headers e inviarla:

    $headers=bcc:indirizzo_email;indirizzo_email;indir izzo_email;indirizzo_email;indirizzo_email;indiriz zo_email;

    oppure

    $headers=cc:indirizzo_email;indirizzo_email;indiri zzo_email;indirizzo_email;indirizzo_email;

  3. #3
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    [supersaibal]Originariamente inviato da silverwings
    Non puoi spedirla così puoi creare una copia carbone tramite gli headers e inviarla:

    $headers=bcc:indirizzo_email;indirizzo_email;indir izzo_email;indirizzo_email;indirizzo_email;indiriz zo_email;

    oppure

    $headers=cc:indirizzo_email;indirizzo_email;indiri zzo_email;indirizzo_email;indirizzo_email; [/supersaibal]
    capisco...

    ok ma come faccio ad assegnare i valori delle email dentro il while alla variabile $headers ??

  4. #4
    io ormai mi sono affezionato all'uso della classe phpMailer, è molto facile da usare, basta includere le classi nel proprio file ed appplicare i metodi corretti. La classe è free, e la trovi qui.

    piccolo esempio di codice:
    codice:
    require("class.phpmailer.php");
    
    $mail = new PHPMailer();
    $mail->From = "from@email.it";
    $mail->FromName = "fromName";
    $mail->AddAddress("to_1@email.it", "nameTo");
    $mail->AddBCC("to_bcc@email.it", "nameBcc");
    $mail->AddReplyTo("replay@email.it", "replayName");
    
    $mail->WordWrap = 50;    // set word wrap to 50 characters
    $mail->IsHTML(true);     // set email format to HTML
    
    $mail->Subject = "Subject";
    $mail->Body    = "HTMLtext"; //puoi inserire testo formattato HTML
    $mail->AltBody = "Default message";
    
    if(!$mail->Send())
    {
       echo "Mailer Error: " . $mail->ErrorInfo;
       exit;
    }
    come vedi è semplicissimo, basta usare AddAddress, AddBCC e aggiungere tutti gli indirizzi che vuoi [ ci sono molti altri metodi nella classe ]. Nel tuo caso potresti fare un ciclo così:

    Codice PHP:
    while ($dati mysql_fetch_array($query))
    {
      
    $mail->AddBCC($dati['email'], $nome);

    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    bello!
    grazie provo..

  6. #6
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    una cosa, dite che ci sono problemi se gli indirizzi a cui inoltrare la mail sono parecchi...? diciamo circa 1000.

  7. #7
    [supersaibal]Originariamente inviato da Base
    una cosa, dite che ci sono problemi se gli indirizzi a cui inoltrare la mail sono parecchi...? diciamo circa 1000. [/supersaibal]
    boh, questo non te lo so dire, non ho mai provato con così tanti indirizzi, cos'è?una mailing list?
    ci sono programmi per gestire invii di mailing list, sia free che a pagamento, che gestiscono il tuo gruppo di utenti e ne mandano spezzoni alla volta, puoi decidere tu in quanti gruppi e quanti utenti per gruppo.
    ora non ricordo il nome del programma, mi dispiace

    però può anche darsi che non crei nessun problema anche inviarne 1000 tutte insieme
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  8. #8
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    bella classe!
    le mail vengono inviate correttamente ma ci sono alcuni problemini
    posto il codice modificato da me:
    Codice PHP:
    include 'db.php'
    include 
    'header.php'
    require(
    "class.phpmailer.php");
    $mail = new phpmailer();
    $mail->From     "list@example.com";
    $mail->FromName "List manager";
    //$mail->Host     = "smtp1.example.com;smtp2.example.com";
    //$mail->Mailer   = "smtp";
    $querymysql_query("SELECT * FROM newusers WHERE ammesso = '1' ")
            or die(
    "Query Fallita: " mysql_error());
    while (
    $row mysql_fetch_array($query))
    {

    // HTML body
        
    $body  "Ciao <font size=\"4\">" $row["name"] . "</font>, 

    "
    ;
        
    $body .= "Email di prova dal server 

    "
    ;
        
    $body .= "Saluti, 
    "
    ;
        
    $body .= "phpmailer List manager";

        
    // Plain text body (for mail clients that cannot read HTML)
        
    $text_body  "Ciao " $row["name"] . ", \n\n";
        
    $text_body .= "Email di prova dal server.\n\n";
        
    $text_body .= "Saluti, \n";
        
    $text_body .= "phpmailer List manager";

        
    $mail->Body    $body;
        
    $mail->AltBody $text_body;
        
    $mail->AddBCC($row["email"], $row["name"]);
        
    //$mail->AddStringAttachment($row["photo"], "YourPhoto.jpg");

        
    if(!$mail->Send())
            echo 
    "Si sono verificati degli errori nell'invio all'indirizzo: " $row["email"] . "
    "
    ;

        
    // Clear all addresses and attachments for next loop
        
    $mail->ClearAddresses();
        
    //$mail->ClearAttachments();
        
    echo "{$row['email']}"

    in pratica succede che se dalla query trova più di una corrispondenza, tutti ricevono la mail ma il primo utente si becca la mail che deve essere spedita a lui più tutte le email degli altri!

  9. #9
    eh beh, mi sembra logico
    nel ciclo metti solo AddBCC, se no il primo becca tutte la mail, il secondo tutte meno una, il terzo tutte meno due etc etc.
    io avrei messo come ti avevo suggerito prima il solo AddBCC nel ciclo, poi la mail la invio alla fine del ciclo.



    edit: non avevo visto il ClearAddresses() prova comunque a fare come ti avevo suggerito e vedi che succede
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  10. #10
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    scusa manuel ... mi sta venendo il ciclo ...

    mi hai scritto che devo mettere solo AddBCC? e cosa dovrei togliere?
    io come funzione di invio destinatari vedo solo AddBCC..

    o ci vedo male ...ci vedo male..

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.