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

    Invio mail html con PHPMailer prendendo i destinatari da un DB SQL

    Ragazzi, salve a tutti

    ioavrei l'esigenza di inviare un'email di massa pescando gli indirizzi da un DB sql, secondo voi in che modo dovrei impostare il codice della pagina da inviare?

    Il codice è questo:

    Codice PHP:
    <?
    include_once('../class.phpmailer.php');
    $mail = new PHPmailer();
    $mail->IsHTML(true);
    $mail->From 'no-reply@miodominio.it';
    $mail->FromName "Mio nome";
    $mail->AddAddress('membro@suodominio.com');
    $mail->AddReplyTo('info@miodominio.it'); 
    $mail->Subject 'Auguri di buon Natale';
    $mail->Body '<html><body><center>I nostri auguri...
    '
    ;

    //percorso all'immagine
    $mail->Body .= '[img]http://www.miodominio.it/natale/auguri.gif[/img]';

    $mail->Body .= '</center></body></html>'
    if(!
    $mail->Send()){
      echo 
    $mail->ErrorInfo
    }else{
      echo 
    'Email inviata correttamente!';
    }
    unset(
    $mail);
    ?>
    Dovrei fare un loop, ho anche trovato qualche tutorial utile , ma non si addice in tutto e per tutto alle mie esigenze che sono molto precise e circostanziate: dovrei mandare un biglietto d'auguri natalizio in html a tre set di indirizzi email (piu o meno in media una 80ina di indirizzi ciascuno). Ogni email dovra avere nel campo "a:" il nome e cognome del destinatario che puntano alla relativa email. Ho creato un database con PHPmyadmin sul mio dominio il cui server è sql.miodominio.it . Ho successivamente creato tre tabelle, ognuna con tre campi (LastName, FirstName, EmailAddress), ma ora non so come accedere ai dati e passarli al PHPMailer utilizzando un loop PHP (non sono esperto di php, ne di sql).

    Potete darmi una mano?
    Grazie in anticipo
    Andrea

  2. #2
    Mi dite almeno dove ho sbagliato?
    Cerco di essere il più circostanziato possibile, nonostante cio nessuno mi risponde. Eppure non penso che sul forum non ci sia nessuno che saprebbe rispondermi

    Grazie lo stesso
    Andrea

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    84

    ciao

    se ho capito bene e le tabelle sono tre
    definisciti le variabili e poi le invii io ho fatto così (nb. la connessione la puoi cambiare secondo le tue esigenze)

    <?php require_once('Connections/testmp.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
    {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

    $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

    switch ($theType) {
    case "text":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "long":
    case "int":
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
    break;
    case "double":
    $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
    break;
    case "date":
    $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
    break;
    case "defined":
    $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
    break;
    }
    return $theValue;
    }
    }

    $maxRows_Recordset1 = 10;
    $pageNum_Recordset1 = 0;
    if (isset($_GET['pageNum_Recordset1'])) {
    $pageNum_Recordset1 = $_GET['pageNum_Recordset1'];
    }
    $startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;

    mysql_select_db($database_testmp, $testmp);
    $query_Recordset1 = "SELECT *, DATE_FORMAT(gg, '%d-%m-%Y') as data_scadenza, to_days(gg) - to_days(curdate()) as quanto_manca FROM asc WHERE CURDATE() = gg - INTERVAL 5 DAY";
    $Recordset1 = mysql_query($query_Recordset1, $testmp) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);

    if (isset($_GET['totalRows_Recordset1'])) {
    $totalRows_Recordset1 = $_GET['totalRows_Recordset1'];
    } else {
    $all_Recordset1 = mysql_query($query_Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($all_Recordset1);
    }
    $totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;

    //if ($totalRows_Recordset1 > 0);
    //{
    $marca = $row_Recordset1['marca'];
    $matr = $row_Recordset1['matricola'];
    $palazzo = $row_Recordset1['palazzo'];
    $indirizzo = $row_Recordset1['indirizzo'];
    $gg = $row_Recordset1['gg'];
    $da = "webmaster@tuosito.it";
    $danome = "chi invia";
    $address = $row_Recordset1['mailente'];
    $address1 = $row_Recordset1['mailrno'];
    $address2 = $row_Recordset1['mailditta'];

    $oggetto = "tuo oggetto";
    $bodytxt = "testo se non leggi html - Impianto Marca $marca - Matr. $matr sito in $palazzo. Data scadenza revisione $gg";
    $body = "<table width=\"90%\" cellspacing=\"3\" cellpadding=\"3\">
    <tr>
    <td width=\"38%\"><img src=\"mio.jpg\" alt=\"\" width=\"200\" height=\"119\" /></td>
    </tr>
    <tr>
    <td><p class=\"style1\"></p>
    <p class=\"style1\">Verifica biennale impianto sollevamento.</p></td>
    </tr>
    <tr><?php do { ?>
    <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
    <tr>
    <th scope=\"col\"><div align=\"left\"><span class=\"Stile3\">Impianto Marca $marca Matr. $matr sito in $palazzo - $indirizzo.</span></div></th>
    </tr>
    <tr>
    <td><span class=\"Stile3\">

    Data scadenza revisione <span class=\"Stile4\">$gg</span></span></td>
    </tr>
    <tr>
    <td><span class=\"Stile3\">

    <a href=\"mailto:$address\">se vuoi linkare a una mail</a> - <a href=\"address1\">se vuoi linkare a una mail</a> - <a href=\"mailto:address2\">se vuoi linkare a una mail.</a> </span></td>
    </tr>
    <tr>
    <td></td>
    </tr>
    </table><?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
    </tr>
    <tr>
    <td class=\"Stile1\"><span class=\"Stile3\"><a href=\avviso.php\">Controlla la lista</a></span></td>
    </tr>
    </table>";
    $type = "image/jpeg";
    require_once("phpmailer/class.phpmailer.php");
    $mail = new PHPMailer();
    //$body = $mail->getFile("avviso.php");
    //$body = eregi_replace("[\]",'',$body);
    $mail->IsSMTP();
    // attiva l'invio tramiteSMTP
    $mail->Host = "smtp.tuosito.it";
    // indirizzo smtp
    $mail->From = $da;
    $mail->FromName = $danome;
    $mail->AddAddress($address);
    $mail->AddCC($address1);
    $mail->AddCC($address2);
    $mail->IsHTML(true);
    $mail->Subject = $oggetto;
    //$mail->MsgHTML($body);
    //$mail->AddEmbeddedImage("mio.jpg");
    $mail->Body = $body;
    $mail->AltBody = $bodytxt;
    //$mail->AddAttachment("test.zip");

    if(!$mail->Send())
    {
    echo "Message could not be sent.

    ";
    echo "Mailer Error: " . $mail->ErrorInfo;
    exit;
    }

    $mail->ClearAddresses(); // elimino i destinatari
    $mail->ClearAttachments(); // elimino gli allegati
    $mail->SmtpClose(); // chiudo la connessione SMTP

    ?>
    <?php
    mysql_free_result($Recordset1);
    ?>

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    84

    ovviamente con l'aiuto

    del forum

    ciao

  5. #5
    Cmq no , la tabella è una sola ed è costituita da 3 campi:
    - FirstName
    - LastName
    - EmailAddress
    cmq tu nel tuo codice, a un certo punto ti richiami l'indirizzo tramite:

    $mail->AddAddress($address);

    Ma in questo modo nel campo A: del messaggio compare solo l'email. Utilizzando questo metodo a cosa servono gli altri due campi del DB con il nome e il cognome?

    Un'altra cosa che non ho capito, in che parte del codice definisci la variabile $address?? :master:

    Grazie 1000
    AndreaP

  6. #6
    Scusami... ho appena letto meglio

    $address = $row_Recordset1['mailente'];

    Un'altra domanda a questo punto: a livello di sintassi, la stringa sopra con cui definisci la variabile come funziona? Ad es. "Recordset1" è la tabella e "mailente" il campo? La mia tabella si chiama "indirizzi" e i tre campi li ho scritti nel post precedente, quindi nel mio caso la stringa dovrebbe essere una cosa del genere (correggetemi se sbaglio):

    $address = $row_indirizzi['EmailAddress'];

    Un'altra cosa, ma questa parte qua del codice a cosa serve?

    Codice PHP:
    <?php require_once('Connections/testmp.php'); ?>
    <?php
    if (!function_exists("GetSQLValueString")) {
    function 
    GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
    {
    $theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

    $theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

    switch (
    $theType) {
    case 
    "text":
    $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
    break; 
    case 
    "long":
    case 
    "int":
    $theValue = ($theValue != "") ? intval($theValue) : "NULL";
    break;
    case 
    "double":
    $theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
    break;
    case 
    "date":
    $theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
    break;
    case 
    "defined":
    $theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
    break;
    }
    return 
    $theValue;
    }
    }

    $maxRows_Recordset1 10;
    $pageNum_Recordset1 0;
    if (isset(
    $_GET['pageNum_Recordset1'])) {
    $pageNum_Recordset1 $_GET['pageNum_Recordset1'];
    }
    $startRow_Recordset1 $pageNum_Recordset1 $maxRows_Recordset1;
    Grazie ancora.
    AndreaP

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    84

    è codice dreamweaver

    in realtà puoi lasciarlo drfinisce le variabili della select
    questo scrip fa il check di una data 15 gg prima e se matcha invia la mail io ho risolto con un cron ogni notte, se non trova date non riempie gli address e quindi non invia nulla, tua row è esatta poi se vuoi fai le variabili $nome $cognome

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.