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

    Newsletter con allegato

    Buongiorno, ho fatto un newsletter che funziona bene, solo ho l'esigenza di allegare anche un file come posso fare? vi posto il codice grazie infinite in anticipo

    codice:
     <?php 
    include("./config.php");
    
    // Verifichiamo di avere l'oggetto e il testo dalla form 
    if (isset($_POST['subject']) && isset($_POST['text'])) { 
      if (trim($_POST['subject'])!='' && trim($_POST['text'])!='') { 
        /* Abbiamo tutto quello che ci serve, ora con una query prendiamo 
        tutti gli indirizzi dal db */ 
    	if($_POST['localita']=='Tutte'){
        $sql = "SELECT email FROM newsleter"; 
        $res = mysql_query($sql); 
    	} elseif ($_POST['citta']=='') {
    	$sql = "SELECT email FROM newsleter WHERE localita= '".$_POST['localita']."'"; 
        $res = mysql_query($sql); 
    	} else {
    	$sql = "SELECT email FROM newsleter WHERE localita= '".$_POST['localita']."' AND citta ='".$_POST['citta']."'"; 
        $res = mysql_query($sql); 	
    	}
        // Impostiamo le intestazione dell'e-mail che stiamo per mandare 
        $headers = "From: transss <emaik@libero.it>\r\n"; 
    
        /* Puliamo il testo e l'oggetto dagli slashs messi in automatico 
        dopo il post dei dati */ 
        $subject = stripslashes($_POST['subject']); 
        $text = stripslashes($_POST['text']); 
    
        /* Cicliamo il risultato della query e assegnamo 
        l'indirizzo e-mail alla variabile $to */ 
        while (list($to) = mysql_fetch_row($res)) { 
    	
          /* e ora inviamo la news */ 
          mail($to, $subject, $text, $headers); } 
    	echo "<script>";
    	echo "alert('Newsletter inviata!');";
    	echo "</script>";
    
      } else { 
       echo "<script>";
    	echo "alert('Tutti i campi sono obbligatori!');";
    	echo "</script>";
      } 
    } else { 
      /* 
       Il contenuto della form non è arrivato, questo può succedere 
       se si accede a questa pagina direttamente senza fare il 
       submit da form_send_news.php 
      */ 
    } 
    ?>

  2. #2
    Ragazzi ho modificato lo script così ma non funziona e non capisco il motivo



    codice:
    <?php 
    
    
    // Verifichiamo di avere l'oggetto e il testo dalla form 
    if (isset($_POST['subject']) && isset($_POST['text'])) { 
      if (trim($_POST['subject'])!='' && trim($_POST['text'])!='') { 
        /* Abbiamo tutto quello che ci serve, ora con una query prendiamo 
        tutti gli indirizzi dal db */ 
    	if($_POST['localita']=='Tutte'){
        $sql = "SELECT email FROM newsleter"; 
        $res = mysql_query($sql); 
    	} elseif ($_POST['citta']=='') {
    	$sql = "SELECT email FROM newsleter WHERE localita= '".$_POST['localita']."'"; 
        $res = mysql_query($sql); 
    	} else {
    	$sql = "SELECT email FROM newsleter WHERE localita= '".$_POST['localita']."' AND citta ='".$_POST['citta']."'"; 
        $res = mysql_query($sql); 	
    	}
    	$subject = stripslashes($_POST['subject']); 
        $text = stripslashes($_POST['text']); 
    	
    
    
    // Obtain file upload vars
    $attachment= $_FILES['attachment']['tmp_name'];
    $attachment_type = $_FILES['attachment']['type'];
    $attachment_name = $_FILES['attachment']['name'];
    
     $headers = "From:  <email@libero.it>\r\n"; 
    if (is_uploaded_file($attachment)) {
     // Read the file to be attached ('rb' = read binary)
     $file = fopen($attachment,'rb');
     $data = fread($file,filesize($attachment));
     fclose($file);
    
     // Generate a boundary string
     $semi_rand = md5(time());
     $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
    
     // Add the headers for a file attachment
     $headers .= "\nMIME-Version: 1.0\n" .
     "Content-Type: multipart/html;\n" .
     " boundary=\"{$mime_boundary}\"";
     
    /*  $headers .= "\nMIME-Version: 1.0\n" .
     "Content-Type: multipart/mixed;\n" .
     " boundary=\"{$mime_boundary}\"";*/
     
     $headers .= "Content-Type: multipart/alternative;\n";
     $headers .= " boundary=\"$boundary2\";\n\n";
    
     // Add a multipart boundary above the plain message
     $text .= "This is a multi-part message in MIME format.\n\n" .
     "--{$mime_boundary}\n" .
     "Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
     "Content-Transfer-Encoding: 7bit\n\n" .
     $text . "\n\n";
    
     // Base64 encode the file data
     $data = chunk_split(base64_encode($data));
    
     // Add file attachment to the message
     $text .= "--{$mime_boundary}\n" .
     "Content-Type: {$fileatt_type};\n" .
     " name=\"{$fileatt_name}\"\n" .
     //"Content-Disposition: attachment;\n" .
     //" filename=\"{$fileatt_name}\"\n" .
     "Content-Transfer-Encoding: base64\n\n" .
     $data . "\n\n" .
     "--{$mime_boundary}--\n";
    }
    
    // Send the message
    
        /* Cicliamo il risultato della query e assegnamo 
        l'indirizzo e-mail alla variabile $to */ 
        while (list($to) = mysql_fetch_row($res)) { 
    	
          /* e ora inviamo la news */ 
          mail($to, $subject, $text, $headers); } 
    	echo "<script>";
    	echo "alert('Newsletter inviata!');";
    	echo "</script>";
    
      } else { 
       echo "<script>";
    	echo "alert('Tutti i campi sono obbligatori!');";
    	echo "</script>";
      } 
    } else { 
      /* 
       Il contenuto della form non è arrivato, questo può succedere 
       se si accede a questa pagina direttamente senza fare il 
       
      */ 
    } 
    ?>

  3. #3
    Sono riuscito grazie a PhpMailer class ha far funzionare la newsletter, il mio unico problema è che allega l'immagine ma non si apre mi potete aiutare vi posto il codice


    codice:
    require "./PHPMailer/class.phpmailer.php";
    
    
    // Verifichiamo di avere l'oggetto e il testo dalla form 
    if (isset($_POST['oggetto']) && isset($_POST['text'])) { 
      if (trim($_POST['oggetto'])!='' && trim($_POST['text'])!='') { 
        /* Abbiamo tutto quello che ci serve, ora con una query prendiamo 
        tutti gli indirizzi dal db */ 
    	if($_POST['localita']=='Tutte'){
        $sql = "SELECT email FROM newsleter"; 
        $res = mysql_query($sql); 
    	} elseif ($_POST['citta']=='') {
    	$sql = "SELECT email FROM newsleter WHERE localita= '".$_POST['localita']."'"; 
        $res = mysql_query($sql); 
    	} else {
    	$sql = "SELECT email FROM newsleter WHERE localita= '".$_POST['localita']."' AND citta ='".$_POST['citta']."'"; 
        $res = mysql_query($sql); 	
    	}
    
    
    //istanziamo la classe
    $messaggio = new PHPmailer();
    //$messaggio->IsSMTP();
    //$messaggio->Host='Host SMTP';
    
    $msg= $_POST['text'];
    $oggetto= $_POST['oggetto'];
    
    $attachment= $_FILES['attachment']['tmp_name'];
    $attachment_type = $_FILES['attachment']['type'];
    $attachment_name = $_FILES['attachment']['name'];
    
    
    //definiamo le intestazioni e il corpo del messaggio
    $messaggio->From='celestesenzalimiti@libero.it';
    while (list($to) = mysql_fetch_row($res)) {
    $messaggio->AddAddress($to);
      }
    $messaggio->AddReplyTo('cemail@libero.it'); 
    
    $messaggio->Subject=$oggetto;
    $messaggio->Body=stripslashes($msg);
    $messaggio->AddAttachment($attachment);
    
    //definiamo i comportamenti in caso di invio corretto 
    //o di errore
    if(!$messaggio->Send()){ 
      echo $messaggio->ErrorInfo; 
    }else{ 
      echo 'Email inviata correttamente!';
    }
    
    //chiudiamo la connessione
    //$messaggio->SmtpClose();
    unset($messaggio);
    
      }
      
    }
    ?>
        
    
    Grazie per l'aiuto

  4. #4
    Risolto

    codice:
    $messaggio->AddEmbeddedImage($attachment, $attachment_name, $attachment_name, 'base64',
    $attachment_type);

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.