Problema con Mail

Soulfearor

Utente Attivo
16 Set 2014
53
0
6
Torino
www.serenagraficatorino.it
Buona sera,
ho questo form:

HTML:
<form action="" method="post">
	<input type="text" class="inputform" name="oggetto" placeholder="Oggetto dell'email">
    <input type="text" class="inputform" name="header" value="From: " placeholder="Header">
    <input type="text" class="inputform" name="destinatario" placeholder="Scrivi l'email del destinatario">
    <textarea name="messaggio" class="inputform" rows="5" placeholder="Messaggio della newsletter"></textarea>
    <input type="text" class="inputform" name="conferma" placeholder="1 conferma, 0 nega" value="0">
    <button type="submit" name="submit" style="margin:10px 0px;">Invia newsletter</button>
</form>

E questo script:

PHP:
include '../php/connessione.php';	

$Oggetto = isset($_POST['oggetto']) ? trim($_POST['oggetto']) : '';
$Messaggio = isset($_POST['messaggio']) ? trim($_POST['messaggio']) : '';
$Header = isset($_POST['header']) ? trim($_POST['header']) : '';
$Destinatario = $_POST['destinatario'];

$query = mysqli_query($connessione, "SELECT email FROM newsletter WHERE data_scadenza = 'CONFERMATO'") or die(mysqli_error());

if(isset($_POST['submit'])) {
	if($_POST['conferma'] == 1) {
		if($Destinatario != "") {
			mail($Destinatario, $Oggetto, $Messaggio, $Header);
			echo "email inviata a ".$Destinatario."<br />";
		}
		
		else {
			while($post = mysqli_fetch_assoc($query)) {
				mail($post['email'], $Oggetto, $Messaggio, $Header);
				echo "email inviata a ".$post['email']."<br />";
			}
		}
	}
}

Quando premo il pulsante "Invia newsletter" e il campo "conferma" ha valore 1, il sistema dovrebbe inviare una newsletter, ma a chi la invia? Se il campo "destinatario" è pieno la invia a quel destinatario, altrimenti a tutti quelli salvati in una tabella.

Una volta concluso il ciclo while mi appare il messaggio "email inviata a" e il destinatario ma le email non vengono fatte partire, come mai?
Il sito è su hosting aruba.

Inoltre ho sentito che l'invio della newsletter può interrompersi, come faccio a farlo ripartire?
Spero che almeno il codice che ho riportato sia corretto.

Confido in un vostro aiuto,
grazie mille.
 

otto9due

Utente Attivo
22 Feb 2014
529
21
28
Inoltre ho sentito che l'invio della newsletter può interrompersi, come faccio a farlo ripartire?
Salvo che tu non abbia un server dedicato lo script in genere si interrompe dopo 30 secondi. Per ovviare al problema io ho fatto così come illustrerò più avanti. Al momento con 40 iscritti tutto regge a meraviglia.
Mando le mail a 99 la volta, modificando per quelle spedite un valore nel db es: spedito, da 0 ad 1, così che nel secondo ciclo da 99 quelli a cui la mail è stata già spedita non verranno selezionati. Quando completo la lista, per resettare tutto ho creato un altro metodo che mi riporta tutta la lista a spedito 0.

Di seguito il metodo che uso per creare l'elenco dei destinatari presi a 99 la volta e inseriti tutti nel campo BCC tipo copia carbone nascosta.

PHP:
		protected function CreateDest()
		{
			include "../connection.php";
			// Estraggo i destinatarii da db  
			  try
			{
			  $sql = 'SELECT nome, email FROM users WHERE inviato=0 AND ver=1 ORDER BY nome DESC LIMIT 99';
			  $result = $pdo->query($sql);
			}
			catch (PDOException $e)
			{
			  $error = 'Error: ' . $e->getMessage();
			  include '../outputpage.php';
			  exit();
			}     
			foreach ($result as $row)
			{
			  $dests[] = array(
				'nome' => $row['nome'],
				'email' => $row['email']
			  );
			}
			// fine estrazione destinatari da db

//creo un pattern che utilizzerò per sprintf per la creazione dell'elenco destinatari
			$pattern = '%s <%s>';

//Parto con un ciclo che crea l'elenco			
			foreach ($dests as $dest) {
				$destlist[] = sprintf($pattern, $dest["nome"], $dest["email"]);
			}
			
			$destmail = 'Bcc: ' . implode(', ', $destlist);
			
			
			return $destmail;  
			
		}

In questo modo almeno fino ad ora funziona.

In questo modo otterrò un risultato del tipo: Bcc: [email protected] <nome>, [email protected] <nome2> ecc..
 
Ultima modifica:

Soulfearor

Utente Attivo
16 Set 2014
53
0
6
Torino
www.serenagraficatorino.it
Ciao otto9due e grazie per la risposta,
scusa se ti rispondo solo adesso ma ultimamente il mio tempo libero scarseggia.

Le mie conoscenze di php non sono ai livelli del tuo script ma tralasciando questo,
come faccio con Aruba ad avere un server dedicato per l'invio delle email?
E' un servizio che posso implementare?

Grazie mille,
buona serata!
 

otto9due

Utente Attivo
22 Feb 2014
529
21
28
Avere un server dedicato per mandare mail veramente non vale la pena. Costa tanti soldini e rischieresti comunque di entrare in blacklist. Se la tua esigenza è quella di spedire newsletter la migliore soluzione è quella di affidarsi a servizi quali MailUp e similari. Con dei piccoli abbonamenti otterrai i risultati che ti servono con un servizio professionale ed all'avanguardia nel settore. Un server dedicato ( che tra l'altro va anche gestito ) non credo sia la soluzione nel tuo caso specifico sopratutto.


Saluti.
G.G.
 
Discussioni simili
Autore Titolo Forum Risposte Data
Marti1! Problema con casella mail cancellata Posta Elettronica 3
A [PHP] Problema invio mail con funzione mail() PHP 3
filomeni Problema con mail() in html PHP 4
V problema con mail e php PHP 6
L problema email con funzione mail PHP 1
F Problema con mail in SPAM Hosting 2
C problema invio mail con form php PHP 0
A Problema con mail() PHP 2
C AJAX FORM MAIL - problema con gli a capo nel messaggio Javascript 0
L Problema invio allegati via mail con libero PHP 5
P Problema con la funzione mail PHP 13
V Problema con l'invio delle mail in locale (usando quindi easy php) PHP 16
Angel0 Problema invio e-mail (era: problemi con xoom) Posta Elettronica 4
D Problema con allegato tramite form mail PHP 2
N problema:mail con allegato a piu utenti da db PHP 17
B Problema invio mail con script php verso i dominii libero PHP 9
H problema con mail e i relativi browser... PHP 0
G problema con mail() PHP 2
R Form Mail: Problema con Frame Supporto Mr.Webmaster 4
M problema con form mail Flash 2
A problema con mail PHP 0
djfulmine Problema con PHP e Server Mail PHP 1
A problema con invio e-mail con CDONTS Classic ASP 0
V problema con invio mail Hosting 2
L problema mail con asp Classic ASP 15
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 1
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 4

Discussioni simili