Invio multiplo mail con phpmailer

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
Rieccomi, con un altro dubbio nella speranza di risolverlo in fretta, non dovrebbe essere complicato. Vengo al dunque. Sto ultimando l'invio di una seconda mail con phpmailer, lo uso da tempo e mi trovo bene ma stavolta non cpaisco cosa possa essere perchè il procedimento è corretto ma la seconda mail non me la invia. Premetto che è solo uno sfizio, quello di non usare il Bcc ma di creare una mail secondaria per il titolare del sito. Qua trovate il codice
PHP:
		//se tutto è OK da qua preparo l'invio della mail di conferma per l'avvenuta registrazione.
		include_once("class.phpmailer.php");
		$semi_rand = md5(time());
		$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
		$mail = new PHPmailer();
		$mail2 = new PHPMailer();
		$mail->CharSet = 'UTF-8';
		$mail->IsSMTP();
		$mail->isHTML(true);
		$mail->SMTPDebug = true;
		//Dati di collegamento al server che su aruba non servono
		$mail->SMTPAuth = true;
		$mail->Username = "username";
		$mail->Password = "Passowrd";

		//Preparo la mail in HTML
		$mailhtml = "<html><body style='background: #DCCE6D;'><head>
		<div style='width:100%; margin:0 auto; padding:20px 10px;'>
		<h1>Grazie!</h1><br>Ho ricevuto la tua richiesta<p>Qui di seguito troverai un resoconto di quello che mi hai scritto.
		Ti contatterò il prima possibile per definire i dettagli e magari per incontrarci.</p><br>Denis</div>
		<div style='padding:10px;'>
		Nome: ".$nome." <br>
		Telefono: ".$cell_1." -".$cell_2." <br>
		Richiesta: " .implode(", ",$richiesta)." <br>
		Testo: ".$testo." <br>
		Data Evento:".$dataevento." <br>
		Orario di Invio richiesta: " . $time . "<br>
		Indirizzo Ip di provenienza: " . $ip . " <br>
		Browser Utilizzato: " . $browser . " <br>
		</div>
		</head></body></html>";

		// Mail che riceverà  solo il cliente con la conferma della richesta fatta sul sito
		$mail->AddAddress ($email,$nome); //Mail che riceverà  il mittente per conoscenza
		$mail->From = ($denis); //Inserire la mail di Denis che apparirà  come mail del mittente
		$mail->FromName = ("Denis Live"); // Nome che apparirà  come Mittente al cliente
		$mail->AddReplyTo($denis , 'Denis Topino');
		//$mail->AddBCC ($alessio); //Mail inviata in copia non visibile anche al titolare del sito
		
		//Mail del Titolare
		$mail2html = "<html><body style='background: #DCC;'><head>
		<div style='width:100%; margin:0 auto; padding:20px 10px;'>
		<h1>Ma vieniiiii!</h1><br>Qualcuno mi ha scritto sul sito!<p>Vediamo chi era e che cosa voleva!.</p><br>Denis</div>
		<div style='padding:10px;'>
		<b>Nome</b>: ".$nome." <br>
		Telefono: ".$cell_1." -".$cell_2." <br>
		Richiesta: " .implode(", ",$richiesta)." <br>
		Testo: ".$testo." <br>
		Data Evento:".$dataevento." <br>
		Orario di Invio richiesta: " . $time . "<br>;
		Indirizzo Ip di provenienza: " . $ip . " <br>;
		Browser Utilizzato: " . $browser . " <br>;
		</div>
		</head></body></html>";
		
		
		//Mail in formato HTML
		$mail->Subject = ("Richiesta Informazioni dal sito Denis Live");
		$mail->Body = ($mailhtml); //Richiamo il testo inserito sopra come variabile
		// Messaggio in formato testo
		$mail->AltBody = "Se visualizzi questo messaggio vuol dire che il tuo programma diposta elettronica non riconosce la mail in HTML";
		$mail->AltBody .= 'Content-Type: text/plain; charset=\"utf-8\"\n';
		$mail->AltBody .= 'Content-Transfer-Encoding: 7bit\n\n';
		$mail->AltBody .= 'Messaggio in formato testo';
		$mail->AltBody .= 'Nome:' . "\n" . $nome . "\n\n" . "<br>" ;
		$mail->AltBody .= 'Telefono:' . "\n" . $cell_1 . "-" . $cell_2 . "\n\n" . "<br>" ;
		$mail->AltBody .= 'Richiesta:' .implode(", ",$richiesta). "\n\n" . "<br>";
		$mail->AltBody .= 'Testo:' . "\n" . $testo . "\n\n" . "<br>" ;
		$mail->AltBody .= 'Data Evento:' . "\n" . $dataevento . "\n\n" . "<br>" ;
		

		//Impostazioni x la Mail Inviata al titolare (Denis) per conoscenza
		$mail2->From = ($email);	// Mail del cliente
		$mail2->FromName = ($nome);	// Nome del cliente che apparirà a Denis o Alessio quando riceveranno la mail dal sito
		$mail2->AddAddress($alessio); //Mail che riceverà  il titolare del sito
		//$mail2->AddAddress($denis); //Mail che riceverà  il titolare del sito
		$mail2->Subject = ("Richiesta informazioni dal sito Denis Live");
		$mail2->Body = ($mail2html); //Mail inviata al titolare con alcune informazioni in più
		
		if (!$mail->Send()){
			//Messaggio che appare se clicco invio e tutti i campi sono vuoti
			echo '<div>
			<p><h3>C\'è stato un errore nell\'invio della mail</h3></p>
			Cortesemente riprova e se vedi che il problema persiste, contattami direttamente</div>'; //	Messaggio di errore invio mail
			echo "<meta http-equiv='Refresh' content='30; URL=contatti.php'>" . $mail->ErrorInfo;
		} else if (!$mail2->Send()){
			echo "<meta http-equiv='Refresh' content='30; URL=contatti.php'>";
			echo '<div>
			<p><h3>C\'è stato un errore nell\'invio della mail 2</h3></p>
			Cortesemente riprova e se vedi che il problema persiste, contattaci direttamente</div>' . $mail2->ErrorInfo;
		} else {
			print "<meta http-equiv=\"Refresh\" content=\"10; URL=ringraziamento.php\">";
			exit;
		}
	}

Secondo voi c'è qualcosa che non funziona?

Grazie a tutti
 
ciao, se usi else if è normale che se la prima va la seconda no
al cliente cosa interessa sapere se la tua mail è arrivata o meno?
io toglierei il controllo sulla mail al titolare
PHP:
$mail2->Send();

if (!$mail->Send()) {
    //Messaggio che appare se clicco invio e tutti i campi sono vuoti
    echo '<div>
            <p><h3>C\'è stato un errore nell\'invio della mail</h3></p>
            Cortesemente riprova e se vedi che il problema persiste, contattami direttamente</div>'; //    Messaggio di errore invio mail
    echo "<meta http-equiv='Refresh' content='30; URL=contatti.php'>" . $mail->ErrorInfo;
} else {
    print "<meta http-equiv=\"Refresh\" content=\"10; URL=ringraziamento.php\">";
    exit;
}
 
Grazie per la risposta.
In effetti al cliente non interessa se la mail al titolare è arrivata è che volevo creare due mail diverse con due testi diversi e fare un controllo anche su quella mail in quanto invio alcune informazioni ulteriori. Naturalmente con Bcc ma la mail è la stessa non ho problemi ma non ricevo la mail se la imposto come nuovo oggetto in phpmailer. Strano!

C'è modo di inviare una mail diversa inserendola come Bcc?
 
ciao
prova a istanziare il tutto anche per mail2, es non vedo
PHP:
$mail2->isHTML(true);
poi, secondo me, togli
PHP:
$mail->IsSMTP();
come hai detto su aruba non serve

poi se vuoi mandare email come BCC
PHP:
$mail->AddBCC($altro_indirizzo);

p.s.
piccolo consiglio: se apri class.phpmailer.php con il tuo editor e la scorri capisci come usare le varie funzioni
 
Grazie borgo!
Non pensavo di dover istanziare anche la mail2.

Quanto a
PHP:
$mail->IsSMTP();
ora non sono suaruba ma in locale quindi per ora mi serve almeno credo.

Quanto alla classe phpmailer, ho provato ad aprirla e dare un okkio, ma sono alle prime armi quindi mi ci vuole un po di tempo. Hai consigli?

p.s FArò le modifiche poi vi aggiornerò.

Grazie
 

Discussioni simili