- Home
- Categorie
- Coding e Sistemistica
- Coding
- errore invio mail
- 
							
							
							
							
							
Ciao e scusami 
 lo script non funziona, a dir vero lo invia solo all'ultimo destinatario
 volevo chiedere se qualcuno ha già fatto una cosa del genere
 invio di e-mail agli iscritti, una newsletter
 ciao da danny
 
- 
							
							
							
							
							
Ciao, ho provato a mettere tutto all'interno del ciclo 
 dalle prove sembra che tutti la ricevonoSe qualcuno ha uno script migliore lo posti pure 
 
- 
							
							
							
							
							Ciao Paolibo, 
 lo script che ti ha postato danny1975 è il minimo per eseguire l'invio di una mail con PHP, ma proprio per questo è il meglio a disposizione:
 [php]$header = "From:[email protected]"; // costruiamo le intestazioni specifiche per il formato HTML 
 $header .= "MIME-Version: 1.0\n";
 $header .= "Content-Type: text/html; charset="UTF-8"\n";
 $header .= "Content-Transfer-Encoding: 7bit\n\n";$testo="Gentile utente 
 questa e-mail ti è stata inviata in quanto iscritto/a al Sito pippo
 Per non ricevere più questa e-mail scrivi a [email protected]
 Distinti Saluti da pippo";
 $destinatario = "[email protected]";
 $oggetto_mail = "CIAO";
 mail($destinatario,$oggetto_mail, $testo, $header);
 [/php]
 A cosa fai riferimento quando chiedi codice migliore?Una dritta: 
 Siccome l'invio delle mail di fatto 'blocca' il server, ossia mette in coda le richieste di chi sta visitando il sito, ti conviene considerare l'ipotesi, a fronte di molte email da inviare (diciamo più di 100), di eseguire l'invio a blocchi di 100 email.Inviate le prime 100 email, ricarichi la pagina per inviarne altre 100: 
 questo fa si che gli utenti ricevano i dati richiesti prima di bloccare il server inviando nuove mail.Spero di essere stato chiaro.  
 
- 
							
							
							
							
							
Grazie per le risposte, ma il mio problema è un altro.. 
 Lo script che io uso sfrutta la classe phpmailer che permette di gestire al meglio l'invio di mail e funziona bene..
 Nel codice interagisco con un db dove sono memorizzate mail e nomi dei soci..
 Per far si che la mail arrivi a tutti i soci utilizzo il while che fa il suo dovere prendendo tutti i dati del db e inviando la mail a tutti e sin qui tutto ok..
 Il problema è il seguente:
 Voglio fare in modo che ad ogni socio la mail arrivi nel formato Egregio Dott. "nomesocio" e per questo memorizzo in una variabile l'id del socio:$id=$_GET['id_cantina']; poi faccio il select in questo modo: 
 $sql = "SELECT * FROM cantina WHERE id_cantina ='$id'";e per l'invio uso il while: while ($row=mysql_fetch_array ($query)) 
 {
 $m ail->AddBCC("$row[e mail]");
 $m ail->Body = "Egregio Dott. $row[soci]";in questo modo mi esce impossibile inviare il messaggio.. se tolgo il id_cantina ='$id'"; 
 la mail arriva correttamente..
 quindi è come se desse fastidio quella variabile..
 Se avete qualche dritta sul perchè di questa anomalia ve ne sarei grato 
 
- 
							
							
							
							
							Ciao paolibo, 
 forse può essere un problema di concatenamento delle stringhe.Prova così: 
 Se id_cantina è un numero:
 [php]"SELECT * FROM cantina WHERE id_cantina =" . $id;[/php]Se id_cantina non è numero:
 [php]"SELECT * FROM cantina WHERE id_cantina ='" . $id . "'" ;[/php]Poi,
 nella stringa che componi per valorizzare la proprietà body dell'email il punto dopo 'Dott.' forse nella forma attuale da noia. Usa il metodo classico anche qui:
 [php]$mail->Body = "Egregio Dott. " . $row['soci'];[/php]Prova e facci sapere.
  
 
- 
							
							
							
							
							
Ho risolto togliendo il where e mettendo tutto nel while e funziona tutto a dovere ecco il codice per chi ne avesse bisogno: <? require_once("../phpmailer/class.phpmailer.php"); require_once ("../Connections/cantina.php"); $db = @mysql_select_db($database_cantina,$cantina); $sql = "SELECT * FROM cantina"; $query = mysql_query ($sql, $cantina) or die ("impossibile eseguire la query"); while ($row=@mysql_fetch_array ($query)) { $mail = new PHPMailer(); $mail->From = "vostramail"; $mail->FromName = "vostronome"; $mail->AddEmbeddedImage("images/logo.jpg", "logo", "logo.jpg", "base64", "image/jpg"); $mail->AddBCC($row['email']); $mail->IsHTML(true); $mailBody = "Egregio Dott. "; $mailBody .= $row['soci'] ."<br />"; $mailBody .= $_POST['messaggio']; $mailBody .= '<br><br><br><table><tr><td><img alt="blabla" src="cid:logo" /></td></tr></table>'; $mail->Body .= $mailBody; $mail->Subject = $_POST['oggetto']; $mail->AddAttachment($_FILES['allegato1']['tmp_name'],$_FILES['allegato1']['name']); $mail->AddAttachment($_FILES['allegato2']['tmp_name'],$_FILES['allegato2']['name']); $mail->AddAttachment($_FILES['allegato3']['tmp_name'],$_FILES['allegato3']['name']); $msg = "Mail inviata con successo"; if(!$mail->Send()) $msg = "Si e' verificato un errore nell'invio della mail<br />"; echo $msg; } ?> ```Grazie per l'aiuto :)
 
- 
							
							
							
							
							Ciao, 
 forse funzionava anche prima.C'è un errore di sintassi: 
 [PHP]$mail->Body = "Egregio Dott. $row['soci']";[/PHP]anziché: 
 [PHP]$mail->Body = "Egregio Dott. $row[soci]";[/PHP]Ciao 
 
- 
							
							
							
							
							
Ciao paolibo, 
 sono contento per te.
 A me invece sorge un problema che oso definire odioso:
 a tutti arrivano le mail tranne a libero.
 Ho provato iversi moduli, ma niente.
 Spero tanto sia un loro problema, perchè in se inviare una meil non è poi cosi difficile, a te come vanno le cose?
 Ciao da danny 1975
 
- 
							
							
							
							
							
Prova a togliere il sender e l' smtp e fammi sapere.. 
 ciao
 
- 
							
							
							
							
							
Ciao, 
 non so cosa fare.
 Il codice è quello che ti ho segnalato sopra,
 solo a libero non mi arriva niente.
 Quale sara mail il problema?
 Ciao da danny1975
 
- 
							
							
							
							
							Ciao danny1975, 
 forse è dovuto ad una gestione di sicurezza che attua Libero.it, mi spiego meglio:Mi è capitato che le mail scritte ad un amico gli andassero tutte nella cartella SPAM semplicemente perchè lui non aveva mai salvato il mio indirizzo di posta tra i suoi contatti. Tu hai salvato l'indirizzo del mittente tra i tuoi contatti? Invii email da server segnalati per spam o 'zozzeria' simile? Non so, non mi viene in mente altro: non è un problema di software ed è dovuto a qualcos'altro che magari non dipende neanche da te.  
 
- 
							
							
							
							
							
Ciao, 
 sto continuando a mandare mail ed a tutti arivano tranne che a me con la posta di libero
 credo proprio che abbia ragione tu, lo script va bene
 ciao da danny
 
- 
							
							
							
							
							
Ciao a tutti, 
 come volevasi dimostrare il cliente mi ha chiesto
 come mai agli iscritti di libero non arrivano le mail?
 quindi sono di nuovo qua a chiedervi aiuto;
 avete voi uno script di invio mail che vada bene?
 Vi ringrazio in anticipo
 ciao da danny 1975