-
Script invio email
Ciao a tutti. Non so proprio come realizzare uno script che ora vi spiego brevemente sperando che qualcuno lo capisca e mi dia una mano :razz:
L'idea è molto semplice: in un area di testo scrivo un messaggio qualsiasi e premendo sul bottone "invia" invio il messaggio a 4/5 indirizzi email predefiniti (cioè che sono sempre quelli, non cambiano ogni volta per cui credo si specifichino nello script).
È realizzabile? Se si come? Chi mi da una mano?
-
Devi fare un form in html e una pagina in php che ti consente di inviare le mail se vuoi posso darti una mano
-
Ho trovato questi codici e funziona per fortuna ma vorrei modificare una cosa :D
Codice:
<form action="mail.php" method="POST">
<table border="0">
<tr>
<td valign="top"><font size=2 color=white>Messaggio da inviare</font></td>
<td><textarea rows="10" name="note" cols="40"></textarea></td>
</tr>
<tr>
<td colspan="2" valign="bottom" align="center" height="30">
<input type="submit" value="Invia">
<input type="reset" value="Cancella"></td>
</tr>
</table>
</form>
Codice:
<?php
//L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$to = "***@***.it, ***@***.it";
//IL SOGGETTO DELLA MAIL
$subject = "Aggiornamento files nell'area riservata - BSSP";
//CORPO DEL MESSAGGIO
$body .= "\nMessaggio:\n__________\n" . @filter_var($_POST['note'], FILTER_SANITIZE_STRING);
//INTESTAZIONI SUPPLEMENTARI
$headers = "From: nomeutente";
//INVIO
if(mail($to, $subject, $body, $headers)) { // SE L'INOLTRO È ANDATO A BUON FINE...
echo "E-mail inviata con successo!! Attendi qualche secondo e verrai reindirizzato alla pagina precedente...";
echo "<meta http-equiv=\"refresh\" content=\"5;url=/private/mediabssp.html\" />";
} else {// ALTRIMENTI...
echo "Si sono verificati dei problemi nell'invio della mail, riprova pù tardi. Ora verrai reindirizzato alla pagina precedente...";
echo "<meta http-equiv=\"refresh\" content=\"5;url=/private/mediabssp.html\" />";
}
?>
Alla fine dell'email compare questo riga di testo:
Codice:
To report abuses or spam please follow this link: http://sp.altervista.it/s.php/YnNzcHwvcHJpdmF0ZS9tYWlsLnBocA==
Si può togliere? O è predefinita da altervista?
-
Inoltre se nel messaggio scrivo "un'altra" o qualsiasi altra parola con l'apostrofo, l'apostrofo viene visualizzato sotto forma di carattere HTML con il codice il che è fastidioso. Come si può sistemare?
-
devi togliere il filtro da:
Codice PHP:
$body .= "\nMessaggio:\n__________\n" . @filter_var($_POST['note'], FILTER_SANITIZE_STRING);
:shock:
-
Devo togliere tutta quella riga o solo una parte?
-
Ti ho messo i commenti nel codice, se hai domande, chiedi per favore:
Codice PHP:
<?php
//CONTROLLO HACKERS
foreach(array('note') as $key) $_POST[$key] = strip_tags($_POST[$key]);
if(!is_secure($_POST)) {
$subject = "Hack Attept via Contact Form!";
$body = "Indirizzo IP: ".getenv("REMOTE_ADDR")."<br>Agent: ".getenv("HTTP_USER_AGENT")."";
//QUI INSERISCI LA TUA EMAIL
$emailto = "LA TUA EMAIL";
$headers = "From: $emailto";
//AVVERTI TE STESSO DELL'ATTACCO:
@mail($emailto, $subject, $body, $headers);
die("<font color=\"red\"><b>Asta la vista Hacker!</b></font><br><br>");
}
//END
//L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$to = "***@***.it, ***@***.it";
//IL SOGGETTO DELLA MAIL
$subject = "Aggiornamento files nell'area riservata - BSSP";
//CORPO DEL MESSAGGIO
//metti come commento il seguente $body:
//$body .= "\nMessaggio:\n__________\n" . @filter_var($_POST['note'], FILTER_SANITIZE_STRING);
//metti questo come $body:
$body = "\nMessaggio:\n__________\n".stripslashes($_POST['note'])."";
//INTESTAZIONI SUPPLEMENTARI
$headers = "From: nomeutente";
//INVIO
if(mail($to, $subject, $body, $headers)) { // SE L'INOLTRO È ANDATO A BUON FINE...
echo "E-mail inviata con successo!! Attendi qualche secondo e verrai reindirizzato alla pagina precedente...";
echo "<meta http-equiv=\"refresh\" content=\"5;url=/private/mediabssp.html\" />";
} else {// ALTRIMENTI...
echo "Si sono verificati dei problemi nell'invio della mail, riprova pù tardi. Ora verrai reindirizzato alla pagina precedente...";
echo "<meta http-equiv=\"refresh\" content=\"5;url=/private/mediabssp.html\" />";
}
//# NON CAMBIARE NIENTE QUI SOTTO:
function is_secure($ar) {
$reg = "/(Content-Type|Bcc|MIME-Version|Content-Transfer-Encoding)/i";
if(!is_array($ar)) { return preg_match($reg,$ar);}
$incoming = array_values_recursive($ar);
foreach($incoming as $k=>$v) if(preg_match($reg,$v)) return false;
return true;
}
function array_values_recursive($array) {
$arrayValues = array();
foreach ($array as $key=>$value) {
if (is_scalar($value) || is_resource($value)) {
$arrayValues[] = $value;
$arrayValues[] = $key;
}
elseif (is_array($value)) {
$arrayValues[] = $key;
$arrayValues = array_merge($arrayValues, array_values_recursive($value));
}
}
return $arrayValues;
}
?>
-
Al posto delle lettere accentate compaiono comunque dei caratteri strani...
-
posta il messaggio per intero....:?:
-
Avevo semplicemente inviato delle lettere accentate e degli apostrofi per vedere se funzionava: ora arriva direttamente il messaggio vuoto...
-
sostituisci:
Codice PHP:
$body = "Messaggio:__________" . stripslashes($_POST['note']) . "______fine messaggio";
-
Comprare solo "Messaggio:_____" e "_____fine messaggio"
-
dimmi per favore cosa metti nel corpo del messaggio:?:
:idea:
-
Semplicemente metto questo:
òèòèàùè
Lettere accentate a caso, per provare.
-
sostituisci:
Codice PHP:
$body = "Messaggio:__________" . stripslashes($_POST["note"]) . "______fine messaggio";
oppure:
$body . = "Messaggio:__________" . stripslashes($_POST["note"]) ;
hai inserito nel codice anche le funzioni is_secure() e array_values_recursive():?:
-
mmm no, non so quasi niente di php...dove vanno inseriti?
-
ma ti ho dato il codice completo(vedi i post precedenti):!:
a me funziona perfettamente:!:
ciao
:lol:
-
-
allora sbagli qualcosa:!:
Puoi postare il codice in php che hai scritto tu:?:
Ho fatto alcune prove da questa pagina:
http://eurosalute.altervista.org/too..._form_mail.php
ho scritto un messaggio e mi è arrivato così:
Codice:
Messaggio:
__________
ciao, ciao, testing email:
òàùèì'=)(/&%$£"!|7863sygdGFGVCV.,;:-_
------------
To report abuses or spam please follow this link: http://sp.altervista.it/s.php/ZXVyb3NhbHV0ZXwvdG9vbC9wcm92YV9mb3JtX21haWwucGhw
-
Il codice mio è quello che ho postato io, tu per fare la prova hai usato il codice che hai postato tu al messaggio #7?
-
il codice usato è questo:
scorri giù la pagina del codice per vedere tutto il codice....e i commenti:!:
Codice PHP:
<?php
if ($_POST['send']) //aggiunto nel form (serve per non fare inviare l'email in automatico, invia l'email solo con send sul pulsante invia
{
//CONTROLLO HACKERS
foreach(array('note') as $key) $_POST[$key] = strip_tags($_POST[$key]);
if(!is_secure($_POST)) {
$subject = "Hack Attept via Contact Form!";
$body = " - Indirizzo IP: ".getenv("REMOTE_ADDR")."
- Agent: ".getenv("HTTP_USER_AGENT")."";
//QUI INSERISCI LA TUA EMAIL
$emailto = "eurosalute@altervista.org";
$headers = "From: $emailto";
//AVVERTI TE STESSO DELL'ATTACCO:
@mail($emailto, $subject, $body, $headers);
die("<br><br><font color=\"red\"><b>Asta la vista Hacker!</b></font><br><br>");
}
//END controllo hackers
//L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$to = "eurosalute@altervista.org";//, ***@***.it";
//IL SOGGETTO DELLA MAIL
$subject = "Aggiornamento files nell'area riservata - BSSP";
//CORPO DEL MESSAGGIO
//metti come commento il seguente $body:
//$body .= "\nMessaggio:\n__________\n" . @filter_var($_POST['note'], FILTER_SANITIZE_STRING);
//metti questo come $body:
$body = "\nMessaggio:\n__________\n".stripslashes($_POST['note'])."";
//INTESTAZIONI SUPPLEMENTARI
$headers = "From: $to";
//INVIO
if(mail($to, $subject, $body, $headers)) { // SE L'INOLTRO È ANDATO A BUON FINE...
echo "E-mail inviata con successo!<br><br>";
//stampo il messaggio inviato:
echo "<font color=\"blue\"><b>$_POST[note]</b></font><br><br>";
} else {// ALTRIMENTI...
echo "Si sono verificati dei problemi nell'invio della mail, riprova pù tardi.<br><br>";
//echo "<meta http-equiv=\"refresh\" content=\"5;url=/private/mediabssp.html\" />";
}
}//end $_POST['send']
//# NON CAMBIARE NIENTE QUI SOTTO:
function is_secure($ar) {
$reg = "/(Content-Type|Bcc|MIME-Version|Content-Transfer-Encoding)/i";
if(!is_array($ar)) {return preg_match($reg,$ar);}
$incoming = array_values_recursive($ar);
foreach($incoming as $k=>$v) if(preg_match($reg,$v)) return false;
return true;
}
function array_values_recursive($array) {
$arrayValues = array();
foreach ($array as $key=>$value) {
if (is_scalar($value) || is_resource($value)) {
$arrayValues[] = $value;
$arrayValues[] = $key;
}
elseif (is_array($value)) {
$arrayValues[] = $key;
$arrayValues = array_merge($arrayValues, array_values_recursive($value));
}
}
return $arrayValues;
}
?>
<form action="prova_form_mail.php" method="POST">
<table border="0">
<tr>
<td valign="top"><font size="2" color="">Messaggio da inviare</font></td>
<td><textarea rows="10" name="note" cols="40"></textarea></td>
</tr>
<tr>
<td colspan="2" valign="bottom" align="center" height="30">
<!-- qui ho aggiunto name="send" per if ($_POST['send'])-->
<input type="submit" value="Invia" name="send">
<input type="reset" value="Cancella"></td>
</tr>
</table>
</form>
Ho inviato un messaggio di prova, ho ricevuto:
Codice:
Da: eurosalute@altervista.org
Data: 24/04/2010 12.45
A: <eurosalute@altervista.org>
Cc:
Oggetto: Aggiornamento files nell'area riservata - BSSP
Allegati:
Return-Path: <apache@ns80.altervista.org>
Original-Recipient: rfc822;eurosalute@altervista.org
Received: from aa021msr.fastwebnet.it (10.31.174.88) by cpmsres810b.intranet.fw (8.5.113)
id 4BBB0B2100255416 for eurosalute@altervista.org; Sat, 24 Apr 2010 12:45:35 +0200
Received: from f2.avforwarding.com (188.40.107.231) by aa021msr.fastwebnet.it (8.5.016.6)
id 4BCF550C010213DA for eurosalute@altervista.org; Sat, 24 Apr 2010 12:45:35 +0200
Received: from ns80.altervista.org (ns80.altervista.org [78.46.58.149])
by f2.avforwarding.com (Postfix) with ESMTP id 71EFA1FDBB3
for <eurosalute@altervista.org>; Sat, 24 Apr 2010 12:45:49 +0200 (CEST)
Received: from ns80.altervista.org (localhost.localdomain [127.0.0.1])
by ns80.altervista.org (8.13.8/8.13.8) with ESMTP id o3OAjWjw019442
for <eurosalute@altervista.org>; Sat, 24 Apr 2010 12:45:32 +0200
Received: (from apache@localhost)
by ns80.altervista.org (8.13.8/8.13.8/Submit) id o3OAjWa6019438;
Sat, 24 Apr 2010 12:45:32 +0200
Date: 24/04/2010 12.45
Message-Id: <201004241045.o3OAjWa6019438@ns80.altervista.org>
X-WEBSITE: eurosalute.altervista.org
To: eurosalute@altervista.org
Subject: Aggiornamento files nell'area riservata - BSSP
From: eurosalute@altervista.org
Messaggio:
__________
ciao,ciao, testing ....
okewuyd92gdùàò+èìhgd...,,_--;;::!!||2345&&(){}
------------
To report abuses or spam please follow this link: http://sp.altervista.it/s.php/ZXVyb3NhbHV0ZXwvdG9vbC9wcm92YV9mb3JtX21haWwucGhw
-
Niente, con me non funziona comunque. Ho usato esattamente i codici che hai postato tu ma non mi va.
-
ho tolto le ' o anche " virgolette da $_POST[send] e $_POST[note], ma è lo stesso perchè funziona sempre..
Allora fai così, crei lo stesso file del mio prova_form_mail.php e lo salvi con il seguente codice....che è uguale al mio:
a questa pagina prova a mandarmi un messaggio, poi ti posto il messaggio ricevuto....
http://eurosalute.altervista.org/too..._form_mail.php
Codice PHP:
<?php
if ($_POST[send]) //aggiunto nel form (serve per non fare inviare l'email in automatico, invia l'email solo con send sul pulsante invia
{
//CONTROLLO HACKERS
foreach(array('note') as $key) $_POST[$key] = strip_tags($_POST[$key]);
if(!is_secure($_POST)) {
$subject = "Hack Attept via Contact Form!";
$body = " - Indirizzo IP: ".getenv("REMOTE_ADDR")."
- Agent: ".getenv("HTTP_USER_AGENT")."";
//QUI INSERISCI LA TUA EMAIL
$emailto = "eurosalute@altervista.org";
$headers = "From: $emailto";
//AVVERTI TE STESSO DELL'ATTACCO:
@mail($emailto, $subject, $body, $headers);
die("<br><br><font color=\"red\"><b>Asta la vista Hacker!</b></font><br><br>");
}
//END controllo hackers
//L'INDIRIZZO DEL DESTINATARIO DELLA MAIL
$to = "eurosalute@altervista.org";//, ***@***.it";
//IL SOGGETTO DELLA MAIL
$subject = "Aggiornamento files nell'area riservata - BSSP";
//CORPO DEL MESSAGGIO
//metti come commento il seguente $body:
//$body .= "\nMessaggio:\n__________\n" . @filter_var($_POST['note'], FILTER_SANITIZE_STRING);
//metti questo come $body:
$body = "\nMessaggio:\n__________\n".stripslashes($_POST[note])."";
//INTESTAZIONI SUPPLEMENTARI
$headers = "From: $to";
//INVIO
if(mail($to, $subject, $body, $headers)) { // SE L'INOLTRO È ANDATO A BUON FINE...
echo "E-mail inviata con successo!<br><br>";
//stampo il messaggio inviato:
echo "<font color=\"blue\"><b>$_POST[note]</b></font><br><br>";
} else {// ALTRIMENTI...
echo "Si sono verificati dei problemi nell'invio della mail, riprova pù tardi.<br><br>";
//echo "<meta http-equiv=\"refresh\" content=\"5;url=/private/mediabssp.html\" />";
}
}//end $_POST[send]
//# NON CAMBIARE NIENTE QUI SOTTO:
function is_secure($ar) {
$reg = "/(Content-Type|Bcc|MIME-Version|Content-Transfer-Encoding)/i";
if(!is_array($ar)) {return preg_match($reg,$ar);}
$incoming = array_values_recursive($ar);
foreach($incoming as $k=>$v) if(preg_match($reg,$v)) return false;
return true;
}
function array_values_recursive($array) {
$arrayValues = array();
foreach ($array as $key=>$value) {
if (is_scalar($value) || is_resource($value)) {
$arrayValues[] = $value;
$arrayValues[] = $key;
}
elseif (is_array($value)) {
$arrayValues[] = $key;
$arrayValues = array_merge($arrayValues, array_values_recursive($value));
}
}
return $arrayValues;
}
?>
<form action="prova_form_mail.php" method="POST">
<table border="0">
<tr>
<td valign="top"><font size="2" color="">Messaggio da inviare</font></td>
<td><textarea rows="10" name="note" cols="40"></textarea></td>
</tr>
<tr>
<td colspan="2" valign="bottom" align="center" height="30">
<!-- qui ho aggiunto name="send" per if ($_POST[send])-->
<input type="submit" value="Invia" name="send">
<input type="reset" value="Cancella"></td>
</tr>
</table>
</form>
-
Mandata..
Ma non c'è il redirect dopo l'invio dell'email?
-
si ho tolto il redirect, perchè a me non serve.....
mi è arrivato il seguente messaggio:
Codice:
Da: eurosalute@altervista.org
Data: 24/04/2010 13.31
A: <eurosalute@altervista.org>
Cc:
Oggetto: Aggiornamento files nell'area riservata - BSSP
Allegati:
Return-Path: <apache@ns75.altervista.org>
Original-Recipient: rfc822;eurosalute@altervista.org
Received: from aa023msr.fastwebnet.it (10.31.174.99) by cpmsres810b.intranet.fw (8.5.113)
id 4BBB0B210025611A for eurosalute@altervista.org; Sat, 24 Apr 2010 13:31:31 +0200
Received: from f2.avforwarding.com (188.40.107.231) by aa023msr.fastwebnet.it (8.5.016.6)
id 4B869C8C13688956 for eurosalute@altervista.org; Sat, 24 Apr 2010 13:31:31 +0200
Received: from ns75.altervista.org (ns75.altervista.org [78.129.205.116])
by f2.avforwarding.com (Postfix) with ESMTP id 69B5926DFA4
for <eurosalute@altervista.org>; Sat, 24 Apr 2010 13:31:44 +0200 (CEST)
Received: from ns75.altervista.org (localhost.localdomain [127.0.0.1])
by ns75.altervista.org (8.13.8/8.13.8) with ESMTP id o3OBVRfG032392
for <eurosalute@altervista.org>; Sat, 24 Apr 2010 13:31:27 +0200
Received: (from apache@localhost)
by ns75.altervista.org (8.13.8/8.13.8/Submit) id o3OBVRls032391;
Sat, 24 Apr 2010 13:31:27 +0200
Date: 24/04/2010 13.31
Message-Id: <201004241131.o3OBVRls032391@ns75.altervista.org>
X-WEBSITE: bssp.altervista.org
ho nascosto l'IP:
X-Originating-IP: []
To: eurosalute@altervista.org
Subject: Aggiornamento files nell'area riservata - BSSP
From: eurosalute@altervista.org
Messaggio:
__________
àèìòù ' ? !
------------
To report abuses or spam please follow this link: http://sp.altervista.it/s.php/YnNzcHwvcHJvdmFfZm9ybV9tYWlsLnBocA==
è il messaggio che hai inviato:?:
-
Io ho inviato questo
Ho provato a inviare al mio indirizzo email lo stesso messaggio e il problema è sempre lo stesso, non si vedono le vocali accentate, ma solo ? e !.
-
be è lo stesso .....ma non vedi:?:
hai fatto come ti ho detto?
hai creato il file:
prova_form_mail.php
con il mio stesso codice:?:, cambia soltanto la tua email con la mia.....
:lol:
scusa , ma devo uscire adesso....ciao!
-
Si si ho fatto tutto cambiando la mia mail con la tua, ma non viene comunque.
-
ho eseguito alcune ricerche sul filtro utilizzato dal codice postato all'inizio del post da te, il filtro è questo:
Codice PHP:
$body .= "\nMessaggio:\n__________\n" . @filter_var($_POST['note'], FILTER_SANITIZE_STRING);
questo filtro, se non ha specificato il flag, non dovrebbe togliere le accento e altri simboli e/o caratteri...
puoi vedere un esempio di tipi di filtro e relativi flag di filtraggio...qui
http://www.php.net/manual/en/filter....s.sanitize.php
non rimane altro che provare con i diversi tipi di filtri, fare delle prove pratiche di come si comportano...
comunque, non saprei per il tuo problema....se ha me funziona e a te no, pur avendo lo stesso codice......
boo, hoo
:shock:
-
Lo tengo così, non so davvero come risolvere..