Invio mail con destinatari da mysql con inserimento di nome e cognome

Madera

Nuovo Utente
25 Giu 2014
10
0
0
Ciao a tutti!
Chiedo agli esperti per risolvere un problema di invio mail :D .

Sto usando la classe phpMailer per l'invio di una newsletter che recupera i destinatari all'interno di un database mysql e fin qui nessun problema, faccio la chiamata al db utilizzando questo codice:

PHP:
$result = mysql_query("SELECT email FROM newsletter");
while($row = mysql_fetch_array($result))
	{
    $to = $row['email'];
    $mail->AddBCC($to); // add each DB entry to list of recipients
	}
	$mail->AddAddress("[email protected]", "Mio Nome");

Mi piacerebbe riuscire a fare in modo che ad ogni destinatario la mail cominciasse con ad es. Buongiorno "nome cognome", campi presenti nella tabella newsletter.
Adesso ovviamente recupera solo gli indirizzi email e manda la mail a tutti in modo generico, mi piacerebbe che all'invio facesse un controllo e inserisse i campi "nome" e "cognome" in base alla mail che sta inviando.

Come potrei risolvere questo problema?

Inoltre già che ci sono chiedo ancora...

Ho notato che phpMailer se incontra un indirizzo non valido, es. [email protected] (senza .ext), mi blocca lo script e non mi fa fare l'invio, andando a correggere l'indirizzo tutto funziona correttamente.
E' un problema mio o della classe? posso bypassare gli indirizzi sbagliati in modo da inviare comunque la newsletter evitando di bloccare lo script?

Grazie mille a tutti!!!
 

Rey

Utente Attivo
11 Set 2012
73
0
6
Ciao,
per come è strutturato lo script non puoi, inoltre è sconsigliato utilizzare phpmailer per newsletter (vieni messo in blacklist tempo zero), utilizza servizi come mailchimp (gratis fino a 12.000 email/mese a 2.000 indirizzi).

Per la seconda domanda basta aggiungere un if nel while:

PHP:
$result = mysql_query("SELECT email FROM newsletter");
while($row = mysql_fetch_array($result))
    {
    // Se l'indirizzo non è valido lo salto
    if (!filter_var($row['email'], FILTER_VALIDATE_EMAIL)) { continue; }
    $to = $row['email'];
    $mail->AddBCC($to); // add each DB entry to list of recipients
    }
    $mail->AddAddress("[email protected]", "Mio Nome");
 

Madera

Nuovo Utente
25 Giu 2014
10
0
0
Ciao Rey, grazie per la risposta, molto gentile.

Non volessi gestire la cosa con Mail Chimp (considera che saranno invii per 100/200 utenti al max, e se va bene una/due volte al mese) è possibile modificare lo script per gestire la cosa.

Praticamente io adesso uso lo stesso sistema per gli invii singoli che vanno a recuperare i dati tramite Id dell'utente, quindi (ho fatto un get->id se riesco a spiegarmi) e in base a quello il mio file php invia la mail utilizzando l'indirizzo email che recupera dal database così come il nome o altri dati che voglio.
Come dicevo sarebbe da attivare la funzione su tutti. Esiste uno script alternativo (senza che mi vada ad impantanare con codice che non conosco) da sostituire a quello che uso attualmente.

Se mi dici che diventa difficile cerco una soluzione alternativa.

Grazie ancora!
 

Madera

Nuovo Utente
25 Giu 2014
10
0
0
Riapro nuovamente la discussione...

Ho recuperato questo script

PHP:
$utenti = array("Pippo" => "[email protected]",
                      "Pluto" => "[email protected]");
 
$oggetto = "Newsletter";
 
foreach ($utenti as $nome => $email)
{
	$messaggio = "Ciao $nome,\r\n testo della newsletter";
 
	mail($email, $oggetto, $messaggio);
 
}

Che effettivamente fa quello di cui avrei bisogno, solo che ovviamente adesso i destinatari vengono inseriti manualmente nell'array.
Posso sfruttare una cosa del genere collegando il database al posto dell'elenco "manuale" nell'array?
Nel caso come dovrei inserire il codice con la query e tutto il resto?

Grazie mille!
 
Ultima modifica:

Rey

Utente Attivo
11 Set 2012
73
0
6
Finchè non finisci in blacklist dovrebbe funzionare :)

PHP:
// Imposto ed eseguo la query
$query = "SELECT nome, email from newsletter";
$result = mysql_query($query, $myconn) or die(mysql_error());

// Conto il numero di occorrenze trovate nel db 
$numrows = mysql_num_rows($result);

// Se il database è vuoto lo stampo a video 
if ($numrows==0) { echo "Database vuoto!"; }

// Se invece trovo delle occorrenze... 
else 
{ 
  // Avvio un ciclo
  for($a=$numrows; $a>=1; $a--){
    $row = mysql_fetch_array($result);
    $nome = $row[0]; 
    $email = $row[1];

    $messaggio = "Ciao $nome,\r\n testo della newsletter";
 
    mail($email, $oggetto, $messaggio); 
}  
}
 

Madera

Nuovo Utente
25 Giu 2014
10
0
0
Grazie Rey,
faccio una prova. Se poi finisco in black list, cerco un sistema più sicuro.
Grazie ancora.
Buona giornata
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Invio mail con allegati multipli PHP 0
R Invio mail con allegati da directory PHP 1
G Invio mail con php da dati prelevati da un database PHP 9
A [PHP] Problema invio mail con funzione mail() PHP 3
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
G Invio Mail con PHPMailer, problemi SMTP PHP 7
Z Limite invio newsletter con PHP - mail() PHP 4
F Invio Mail con Javascript Javascript 25
P invio mail da form con dati php PHP 7
S Form invio mail html, con invio tramite file denominato invio.php PHP 8
asevenx link cliccabile che non funziona con invio mail PHP 1
I [Risolto] Problemi invio e-mail con CDOSYS con domini @live.it Classic ASP 4
L Form con invio mail PHP 1
P Invio multiplo mail con phpmailer PHP 5
E Form invio e-mail con allegato PHP 51
E Form invio e-mail con allegato PHP 0
M Invio e mail al destinatario con invio di una copia al mittente PHP 35
A invio mail con php PHP 6
N Form invio Mail con Allegato PHP 2
C problema invio mail con form php PHP 0
V Invio E-Mail con la notifica degli ordini effettuati PHP 2
neo996sps Errore con script per invio mail PHP 3
D For invio mail-allegato con smtp PHP 9
L Problema invio allegati via mail con libero PHP 5
V Problema con l'invio delle mail in locale (usando quindi easy php) PHP 16
S form invio mail con foto o logo PHP 46
Angel0 Problema invio e-mail (era: problemi con xoom) Posta Elettronica 4
SolidSnake4 invio mail html con php non va PHP 6
S form invio mail con opzioni PHP 3
B Problema invio mail con script php verso i dominii libero PHP 9
L invio mail con CreateMHTMLBody Classic ASP 2
T Invio mail da form contatti con annesso file attachment Classic ASP 1
L Problemi con invio form via mail Classic ASP 3
F Implementare l'invio mail con allegato PHP 1
G invio mail con allegati PHP 0
F script asp invio mail con dati di un form Classic ASP 3
M il loop per l'invio mail con CDOSYS ad un tratto non funziona più Classic ASP 1
H ASPMail - Invio di mail html con variabili Classic ASP 5
E Errore invio mail con CDO Classic ASP 4
X Invio mail con allegati PHP 11
A problema con invio e-mail con CDONTS Classic ASP 0
V problema con invio mail Hosting 2
Daniele_Carrara Problema timeout - invio mail PHP 7
U PHP bottone per invio mail o ritorno al form PHP 15
AC1 [PHP] Invio Mail PHP 18
B [PHP] Invio mail automatico dopo compilazione form - db PHP 25
paloppa [PHP] Invio mail da form dubbio PHP 17
F Form mail php errore invio PHP 5
Punix [PHP] problema script invio e-mail PHP 2
cobra_72 [PHP] problema invio multiplo allegati mail PHP 21

Discussioni simili