Buongiorno a tutti,
avrei un problemino, o meglio, una questione da porvi.
Quello che vorrei creare è un form (da compilare con nome e indirizzo email), che una volta compilato, invii una mail a me per la raccolta dei dati inseriti (anche se i dati non vengono raccolti in un database non è un problema) E una mail all'indirizzo email inserito dall'utente, con il link per lo scaricamento di un file presente sul nostro sito. Una volta cliccato il link nella mail, il download vorrei che partisse immediatamente (senza dover tornare sul sito, ma direttamente stando sulla mail).
Prima di tutto: è possibile fare una cosa del genere? Quali sono le problematiche? Mi rendo conto che forse non è proprio una cosa da cinque minuti, ma mi chiedevo se potevate darmi qualche aiuto in proposito.
Di codice, ahimé, ci capisco poco, ma qualche tempo fa ho dovuto fare delle modifiche grafiche (il mio settore) su un sito in php fatto da un'altra persona e ho recuperato da lì il codice del form (adattandolo alla grafica del sito in cui mi serve adesso) e del file php per l'invio della mail a me con i dati inseriti dall'utente.
Questo vorrebbe essere il codice per il form in una pagina index.html, da compilare con nome e email:
codice:
<div class="container inner">
<h1 class="download">download</h1>
<p align="center"><i>Fill the form and download.</i></p>
<form class="form-inline" action="newsletterup.php" method="post" id="mailform" name="mailform" align="center">
<p>
<div class="form-group">
Complete Name <br/>
<input type="text" size="32" id="nome" name="nome" placeholder="Your Name" class="form-control" class="sr-only"/>
</div>
<div class="form-group">
E-mail <br/>
<input type="text" size="32" id="mail" name="mail" placeholder="Your Email" class="form-control"/>
</div>
</p>
<input type="image" src="img/download.png" alt="Submit Form" />
</form>
Questo invece dovrebbe essere il codice di 'newsletterup.php' per l'invio della mail a me con nome e email:
codice:
<?php
$nomeaf = $_POST['nome'];
$email = $_POST['mail'];
$to = "mia email";
if((!empty($nomeaf))&&(!empty($email))){
//echo($q_prfetch[0]);
error_reporting(E_ALL);
// Genera un boundary
$mail_boundary = "=_NextPart_" . md5(uniqid(time()));
$subject = 'Download';
$sender = $email;
$headers = "From: $sender\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: multipart/alternative;\n\tboundary=\"$mail_boundary\"\n";
$headers .= "X-Mailer: PHP " . phpversion();
$infos = "Nome: ".$nomeaf."<br>E-mail: ".$mail."<br>";
// Corpi del messaggio nei due formati testo e HTML
$text_msg = "messaggio in formato testo";
$html_msg = "<b>messaggio</b> in formato html<br>";
// Costruisci il corpo del messaggio da inviare
$msg = "This is a multi-part message in MIME format.\n\n";
$msg .= "--$mail_boundary\n";
$msg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
$msg .= "Content-Transfer-Encoding: 8bit\n\n";
$msg .= $infos;
//$msg .= "Questa è una e-Mail di test inviata dal servizio Hosting di *** per la verifica del corretto funzionamento di PHP mail()function .
//****.it"; // aggiungi il messaggio in formato text
$msg .= "\n--$mail_boundary\n";
$msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
$msg .= "Content-Transfer-Encoding: 8bit\n\n";
$msg .= "<html><head><title>Messaggio inviato da".$nomeaf."</title></head><body>".$infos."</body></html>";
//$msg .= "Questa è una e-Mail di test inviata dal servizio Hosting *** per la verifica del corretto funzionamento di PHP mail()function .
//***.it"; // aggiungi il messaggio in formato HTML
// Boundary di terminazione multipart/alternative
$msg .= "\n--$mail_boundary--\n";
// Imposta il Return-Path (funziona solo su hosting Windows)
ini_set("sendmail_from", $sender);
// Invia il messaggio, il quinto parametro "-f$sender" imposta il Return-Path su hosting Linux
if (mail($to, $subject, $msg, $headers, "-f$sender")) {
echo "Mail inviata correttamente !";
?>
<script language="javascript">
alert("Mail inviata.");
location.href = "url";
</script>
<?php
} else {
echo "<br><br>Recapito e-Mail fallito!";
?>
<script language="javascript">
alert("Mail non inviata. Provi di nuovo o contatta il nostro staff per segnalare il problema.");
location.href = "url";
</script>
<?php
}
}else{
?>
<script language="javascript">
alert("Mail non inviata. Inserisci tutti i dati correttamente.");
location.href = "url";
</script>
<?php
}
?>
C'è qualche strafalcione fino ad adesso? Il proprietario del sito non si è mai lamentato in proposito, quindi, visto che è usato per l'iscrizione alla newsletter, immagino che funzioni. La cosa che mi impensierisce di questa parte è che il mio e il sito da dove ho preso il codice non sono con lo stesso hosting. Visto che l'hosting è citato nel codice di 'newsletterup.php' c'è il pericolo che non funzioni su un altro hosting? (scusate, forse questa è una domanda scema, ma giusto per levarsi ogni dubbio...)
Se tutto questo dovesse andare bene, mi mancherebbe "solo":
1 - come inviare la email all'utente che ha appena inserito i dati
2 - come creare il link nella mail inviata all'utente, che cliccato fa partire il download in automatico.
Sapreste darmi qualche indicazione?
Grazie in anticipo
L