Invio automatico mail php

  • Creatore Discussione Creatore Discussione Fabio90
  • Data di inizio Data di inizio

Fabio90

Utente Attivo
29 Feb 2012
507
0
16
Salve forum,
mi è stato passato questo script che dovrebbe inviare automaticamente le mail presenti in un file csv.
La mia domanda è. ma è sufficiente richiamarlo come url per lanciare automaticamente l'invio?

PHP:
<?php
/*
SERVONO 3 FILE:
1) il testo della mail, va incollato nel codice
2) il csv degli indirizzi, separato da virgole, ha l'intestazione, la mail nella colonna 2 e l'etichetta nella colonna 4
3) l'immagine dell'allegato (alcune immagini a volte danno problemi, di solito jpg è il formato che funziona sempre)
*/


require_once ('PHPMailerAutoload.php');

$indirizzi = array();
$n = 0;

/*
 *
 * QUESTA PARTE LEGGE IL CSV, OVVIAMENTE VA CAMBIATO IL PATH IN BASE ALL'INVIO
 */
 
//FORMATO INDIRIZZI PER TEST 

if (($handle = fopen("testnet.csv", "r")) !== FALSE) {
     //chdir('icone prodotti/it');
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {

       if ($data[1] && stristr($data[1],'@')) $indirizzi[] = trim(strtolower($data[1]))."|".trim($data[3]);

       $n++;

      }

    }
    
/*
 *
 * VAR DUMP DA COMMENTARE/SCOMMENTARE SERVE PER CONTROLLARE LA LISTA DEGLI INDIRIZZI
 *
 *
 */
  
//var_dump($indirizzi);
die();
//$indirizzi[] = "[email protected]|Netfranz";


$mail = new PHPMailer();
// Telling the class to use SMTP
$mail->IsSMTP();
// SMTP server
$mail->Host = "";
// The from email address should be accepted by the smtp server
        $mail->SMTPAuth = true;
        $mail->SMTPKeepAlive = true; // SMTP connection will not close after each email sent, reduces SMTP overhead
        $mail->Port = 25;
        $mail->Username = '';
        $mail->Password = '';


$mail->FromName = "";
$mail->From = "";

        $mail->CharSet = "UTF-8";

ob_start();

/*
 *
 *
 *
 *
 * TESTO DEL MESSAGGIO: CAMBIA OGNI VOLTA. [TESTATA] è il segnaposto che viene sostituito col valore preso dal csv
 * 
 */
/*
?>

<?
*/

?>

Gentile redazione di [TESTATA],
<?

$msg_body = ob_get_clean();

$msg_body = htmlentities($msg_body);
$msg_body = nl2br($msg_body);



/*
 *
 * OGGETTO DELLA MAIL
 *
 */
//$mail->Subject = "Propuesta de colaboración - infografía";
$mail->Subject = "";


$mail->IsHTML(true);
//$mail->AddEmbeddedImage("images/logo_think.jpg", "img");
//$mail->Body .= '<img alt="Think Comics" src="cid:img">';
$mail->WordWrap = 50;

/*
 *
 * ATTACHMENT: A VOLTE I PNG DANNO PROBLEMI, MEGLIO CONVERTIRE IN JPG
 *
 *
 *
 */

$mail->AddAttachment('blog/bobmarley_IT/1_bob_marley.png');
//$mail->AddAttachment('blog/oscar_IT/1-GrandiEsclusi.png');

foreach ($indirizzi as $k => $v) { //This iterator syntax only works in PHP 5.4+

    $boom = explode("|",$v);
    $mail->addAddress($boom[0], $boom[0]);
   //$mail->AddAddress("[email protected]");

    $mail->Body = str_replace("[TESTATA]",$boom[1],$msg_body);




    if (!$mail->send()) {
        echo "Mailer Error (" . str_replace("@", "@", $boom[0]) . ') ' . $mail->ErrorInfo . '<br />';

    } else {
        echo "Message sent to: " . $boom[0] . '<br />';
        flush();
        ob_flush();
        //Mark it as sent in the DB


    }
    // Clear all addresses and attachments for next loop
    $mail->clearAddresses();
    //$mail->clearAttachments();
//break;

}


if(!$mail->Send())
{
   echo "Message was not sent";
   echo "Mailer Error: " . $mail->ErrorInfo;
$showmess = -1;
}
else
{
   //echo "Message has been sent";
$usermail = 1;
}

?>

Grazie
 

Discussioni simili