saludos foro, tengo un formulario escrito en php y bueno mi cliente me pide que mediante este formulario solo se puedan mandar correos de empresas menos correos como hotmail, mixmail, latinmal, etc, los formularios son estos:
contactenos:
<form action="enviar.php" method="post" name="form1" id="form1" onSubmit="MM_validateForm('nombre','','R','email','','R','compania','','R','direccion','','R','pais','','R','ciudad','','R');return document.MM_returnValue">
<table width="450" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#D5F4FF">
<div align="center">
<table width="440" border="0" align="center" cellpadding="0" cellspacing="0">
<tr bgcolor="#D5F4FF">
<td colspan="2" valign="top" class="texto"><strong>* Campos
requeridos</strong></td>
</tr>
<tr bgcolor="#D5F4FF">
<td colspan="2" valign="top" class="texto"> </td>
</tr>
<tr bgcolor="#D5F4FF">
<td colspan="2" valign="top" class="texto"><strong>INFORMACION
PERSONAL:</strong></td>
</tr>
<tr bgcolor="#D5F4FF">
<td valign="top" class="texto"><strong>Nombre:</strong></td>
<td valign="top"> <div align="left">
<input name="nombre" type="text" id="nombre3" size="35">
<font color="#000000">*</font></div></td>
</tr>
<tr bgcolor="#D5F4FF">
<td width="100" valign="top" class="texto"><strong>Email:</strong></td>
<td valign="top"> <div align="left">
<label>
<input name="email" type="text" id="email2" size="30">
* </label>
</div></td>
</tr>
<tr>
<td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Teléfono:</strong></td>
<td valign="top" bgcolor="#D5F4FF"><div align="left">
<input name="telefono" type="text" id="telefono2">
* </div></td>
</tr>
<tr>
<td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Ocupación:</strong></td>
<td valign="top" bgcolor="#D5F4FF"><div align="left">
<input name="ocupacion" type="text" id="ocupacion2" size="30">
</div></td>
</tr>
<tr>
<td colspan="2" valign="top" bgcolor="#D5F4FF" class="texto"> </td>
</tr>
<tr>
<td colspan="2" valign="top" bgcolor="#D5F4FF" class="texto"><strong>INFORMACION
DE LA COMPAÑIA: </strong></td>
</tr>
<tr>
<td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Compañia:</strong></td>
<td valign="top" bgcolor="#D5F4FF"><div align="left">
<input name="compania" type="text" id="compania2">
* </div></td>
</tr>
<tr>
<td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Dirección:</strong></td>
<td valign="top" bgcolor="#D5F4FF"><div align="left">
<input name="direccion" type="text" id="direccion2" size="30">
* </div></td>
</tr>
<tr>
<td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Pais:</strong></td>
<td valign="top" bgcolor="#D5F4FF"><div align="left">
<input name="pais" type="text" id="pais3" size="30">
*</div></td>
</tr>
<tr>
<td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Ciudad:</strong></td>
<td valign="top" bgcolor="#D5F4FF"><div align="left">
<input name="ciudad" type="text" id="ciudad2" size="30">
*</div></td>
</tr>
<tr>
<td valign="top" bgcolor="#D5F4FF" class="texto"><strong>Comentario:</strong></td>
<td valign="top" bgcolor="#D5F4FF"><div align="left">
<textarea name="comentario" cols="35" rows="10" id="textarea"></textarea>
</div></td>
</tr>
<tr>
<td valign="top" bgcolor="#D5F4FF" class="texto"> </td>
<td valign="top" bgcolor="#D5F4FF"><label> </label> <div align="left">
</div></td>
</tr>
<tr>
<td colspan="2"><table width="440" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<th scope="col"><div align="center">
<label>
<input type="submit" name="Submit" value="Enviar">
</label>
</div></th>
<th scope="col"><div align="center">
<label>
<input type="reset" name="Submit2" value="Limpiar">
</label>
</div></th>
</tr>
</table></td>
</tr>
</table>
</div></td>
</tr>
</table>
</form>
enviar:
<?
$destinatario="miempresa@dominio.com";
$asunto="Cotizacion desde la pagina web";
// Obtenemos y traducimos el nombre del día
$dia=date("l");
if ($dia=="Monday") $dia="Lunes";
if ($dia=="Tuesday") $dia="Martes";
if ($dia=="Wednesday") $dia="Miércoles";
if ($dia=="Thursday") $dia="Jueves";
if ($dia=="Friday") $dia="Viernes";
if ($dia=="Saturday") $dia="Sabado";
if ($dia=="Sunday") $dia="Domingo";
// Obtenemos el número del día
$dia2=date("d");
// Obtenemos y traducimos el nombre del mes
$mes=date("F");
if ($mes=="January") $mes="Enero";
if ($mes=="February") $mes="Febrero";
if ($mes=="March") $mes="Marzo";
if ($mes=="April") $mes="Abril";
if ($mes=="May") $mes="Mayo";
if ($mes=="June") $mes="Junio";
if ($mes=="July") $mes="Julio";
if ($mes=="August") $mes="Agosto";
if ($mes=="September") $mes="Setiembre";
if ($mes=="October") $mes="Octubre";
if ($mes=="November") $mes="Noviembre";
if ($mes=="December") $mes="Diciembre";
// Obtenemos el año
$ano=date("Y");
// Imprimimos la fecha completa
$fecha= "$dia $dia2 de $mes de $ano";
$personares = $_POST['nombre'];
$email2 = $_POST['email'];
$cuerpo = "La siguiente cotizacion fue enviada con fecha: ".$fecha."\n\n";
$cuerpo .= "Nombre: ".$_POST["nombre"]."\n";
$cuerpo .= "E-mail: ".$_POST["email"]."\n\n";
$cuerpo .= "Telefono: ".$_POST["telefono"]."\n";
$cuerpo .= "Ocupacion: ".$_POST["ocupacion"]."\n";
$cuerpo .= "Compania:: ".$_POST["compania"]."\n";
$cuerpo .= "Direccion: ".$_POST["direccion"]."\n";
$cuerpo .= "Pais: ".$_POST["pais"]."\n";
$cuerpo .= "Ciudad: ".$_POST["ciudad"]."\n";
$cuerpo .= "Comentario: ".$_POST['comentario'];
//$adjuntar=$attachment[]
$cabecera.="From:".$personares." <".$email2."> \n";
mail ($destinatario,$asunto,$cuerpo,$cabecera);
echo "<script language=javascript>
alert('Tu mensaje ha sido enviado correctamente en 24 horas tendras una respuesta a tu solicitud, Gracias');
window.location.href='contactenos.htm';
</script>";
?>
mi pregunta es como puedo hacer eso, gracias por la ayuda que me den..
Parece tan sencillo (espero no equivocarme) como validar que la variable $_POST['email'] no tengo dentro cadenas como hotmail, mixmail, latinmal, etc,
Puedes usar strstr o strpos
Saludos y suerte.
hola, disculpa la ignorancia pero, puedes ponerme un ejemplo de lo que me acabas de decir??
<?php
if (strpos("@hotmail.com",$_POST['email'] ) === false)
{
//envia correo
}else{
//no envies correo
}
?>
Saludos
ok lo voy a probar luego les cuento que fue ...
aver bueno he probado el codigo que me dieron y no he podido restringir los correos de hotmail, el codigo que use es este:
<?
$destinatario="micorreo@dominio.com";
$asunto="Cotizacion desde la pagina web";
// Obtenemos y traducimos el nombre del día
$dia=date("l");
if ($dia=="Monday") $dia="Lunes";
if ($dia=="Tuesday") $dia="Martes";
if ($dia=="Wednesday") $dia="Miércoles";
if ($dia=="Thursday") $dia="Jueves";
if ($dia=="Friday") $dia="Viernes";
if ($dia=="Saturday") $dia="Sabado";
if ($dia=="Sunday") $dia="Domingo";
// Obtenemos el número del día
$dia2=date("d");
// Obtenemos y traducimos el nombre del mes
$mes=date("F");
if ($mes=="January") $mes="Enero";
if ($mes=="February") $mes="Febrero";
if ($mes=="March") $mes="Marzo";
if ($mes=="April") $mes="Abril";
if ($mes=="May") $mes="Mayo";
if ($mes=="June") $mes="Junio";
if ($mes=="July") $mes="Julio";
if ($mes=="August") $mes="Agosto";
if ($mes=="September") $mes="Setiembre";
if ($mes=="October") $mes="Octubre";
if ($mes=="November") $mes="Noviembre";
if ($mes=="December") $mes="Diciembre";
// Obtenemos el año
$ano=date("Y");
// Imprimimos la fecha completa
$fecha= "$dia $dia2 de $mes de $ano";
$personares = $_POST['nombre'];
$email2 = $_POST['email'];
$cuerpo = "La siguiente cotizacion fue enviada con fecha: ".$fecha."\n\n";
$cuerpo .= "Nombre: ".$_POST["nombre"]."\n";
$cuerpo .= "E-mail: ".$_POST["email"]."\n\n";
$cuerpo .= "Telefono: ".$_POST["telefono"]."\n";
$cuerpo .= "Ocupacion: ".$_POST["ocupacion"]."\n";
$cuerpo .= "Compania:: ".$_POST["compania"]."\n";
$cuerpo .= "Direccion: ".$_POST["direccion"]."\n";
$cuerpo .= "Pais: ".$_POST["pais"]."\n";
$cuerpo .= "Ciudad: ".$_POST["ciudad"]."\n";
$cuerpo .= "Comentario: ".$_POST['comentario'];
if (strpos("@hotmail.com",$_POST['email'] ) === false) { //envia correo }else{ //no envies correo }
//$adjuntar=$attachment[]
$cabecera.="From:".$personares." <".$email2."> \n";
mail ($destinatario,$asunto,$cuerpo,$cabecera);
echo "<script language=javascript>
alert('Tu mensaje ha sido enviado correctamente en 24 horas tendras una respuesta a tu solicitud, Gracias');
window.location.href='ig_contactenos.php';
</script>";
?>
me sale un mensaje de error cuando quiero enviar ("Parse error: syntax error, unexpected $end in /home/ig/public_html/enviar.php on line 68") mi pregunta es que estoy haciendo mal ??
Te falta cerrar una llave '}', cuentalas.
Suerte
tenias razon en las llaves pero ahora que lo acomode el correo me sigue llegando o sea no me restringe si es de hotmail igual me llega y no lo bloquea:
<?
$destinatario="correo@dominio.com";
$asunto="Cotizacion desde la pagina web";
// Obtenemos y traducimos el nombre del día
$dia=date("l");
if ($dia=="Monday") $dia="Lunes";
if ($dia=="Tuesday") $dia="Martes";
if ($dia=="Wednesday") $dia="Miércoles";
if ($dia=="Thursday") $dia="Jueves";
if ($dia=="Friday") $dia="Viernes";
if ($dia=="Saturday") $dia="Sabado";
if ($dia=="Sunday") $dia="Domingo";
// Obtenemos el número del día
$dia2=date("d");
// Obtenemos y traducimos el nombre del mes
$mes=date("F");
if ($mes=="January") $mes="Enero";
if ($mes=="February") $mes="Febrero";
if ($mes=="March") $mes="Marzo";
if ($mes=="April") $mes="Abril";
if ($mes=="May") $mes="Mayo";
if ($mes=="June") $mes="Junio";
if ($mes=="July") $mes="Julio";
if ($mes=="August") $mes="Agosto";
if ($mes=="September") $mes="Setiembre";
if ($mes=="October") $mes="Octubre";
if ($mes=="November") $mes="Noviembre";
if ($mes=="December") $mes="Diciembre";
// Obtenemos el año
$ano=date("Y");
// Imprimimos la fecha completa
$fecha= "$dia $dia2 de $mes de $ano";
$personares = $_POST['nombre'];
$email2 = $_POST['email'];
$cuerpo = "La siguiente cotizacion fue enviada con fecha: ".$fecha."\n\n";
$cuerpo .= "Nombre: ".$_POST["nombre"]."\n";
$cuerpo .= "E-mail: ".$_POST["email"]."\n\n";
$cuerpo .= "Telefono: ".$_POST["telefono"]."\n";
$cuerpo .= "Ocupacion: ".$_POST["ocupacion"]."\n";
$cuerpo .= "Compania:: ".$_POST["compania"]."\n";
$cuerpo .= "Direccion: ".$_POST["direccion"]."\n";
$cuerpo .= "Pais: ".$_POST["pais"]."\n";
$cuerpo .= "Ciudad: ".$_POST["ciudad"]."\n";
$cuerpo .= "Comentario: ".$_POST['comentario'];
if (strpos("@hotmail.com",$_POST['email'] ) === false)
{ //envia correo
}
else{ //no envies correo
}
//$adjuntar=$attachment[]
$cabecera.="From:".$personares." <".$email2."> \n";
mail ($destinatario,$asunto,$cuerpo,$cabecera);
echo "<script language=javascript>
alert('Tu mensaje ha sido enviado correctamente en 24 horas tendras una respuesta a tu solicitud, Gracias');
window.location.href='ig_contactenos.php';
</script>";
?>
que estoy haciendo mal ahora?
Hola, una forma facil para que no acepte las direcciones hotmail es usando la funcion eregi(), acá te dejo un ejemplo q hice rapidamente para q te lleves una idea:
<?php
$texto="direccion@hotmail.com";
if(eregi("hotmail",$texto))
{
echo "No ingrese correo hotmail por favor";
}
else
{
echo "Correcto el e-mail";
}
?>
Lo bueno de eregi es q no importa si esta en mayusculas o minusculas, asi q valida tanto mayusculas como minusculas sin problema, en pocas palabras no usa el case sensitive como ereg().
<?php
function fncEmail($str) {
$strFilter = array("hotmail.com", "mixmail.com", "latinmail.com");
$expEmail = ereg('^[a-z0-9]+([\.]?[a-z0-9_-]+)*@[a-z0-9]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$', $str);
if ($expEmail == 1) {
$expFilter = explode("@", $str);
for ($i=0;$i<count($strFilter);$i++) {
if ($expFilter[1] == $strFilter[$i]) {
return 0;
}
}
return 1;
} else {
return 0;
}
}
if (fncEmail("user@mail.com") == 1) {
echo "Direcci&#243;n correcta";
} else {
echo "Direcci&#243;n incorrecta";
}
?>
nada >:(
<?
$destinatario="correo@dominio.com";
$asunto="Cotizacion desde la pagina web";
// Obtenemos y traducimos el nombre del día
$dia=date("l");
if ($dia=="Monday") $dia="Lunes";
if ($dia=="Tuesday") $dia="Martes";
if ($dia=="Wednesday") $dia="Miércoles";
if ($dia=="Thursday") $dia="Jueves";
if ($dia=="Friday") $dia="Viernes";
if ($dia=="Saturday") $dia="Sabado";
if ($dia=="Sunday") $dia="Domingo";
// Obtenemos el número del día
$dia2=date("d");
// Obtenemos y traducimos el nombre del mes
$mes=date("F");
if ($mes=="January") $mes="Enero";
if ($mes=="February") $mes="Febrero";
if ($mes=="March") $mes="Marzo";
if ($mes=="April") $mes="Abril";
if ($mes=="May") $mes="Mayo";
if ($mes=="June") $mes="Junio";
if ($mes=="July") $mes="Julio";
if ($mes=="August") $mes="Agosto";
if ($mes=="September") $mes="Setiembre";
if ($mes=="October") $mes="Octubre";
if ($mes=="November") $mes="Noviembre";
if ($mes=="December") $mes="Diciembre";
// Obtenemos el año
$ano=date("Y");
// Imprimimos la fecha completa
$fecha= "$dia $dia2 de $mes de $ano";
$personares = $_POST['nombre'];
$email2 = $_POST['email'];
$cuerpo = "La siguiente cotizacion fue enviada con fecha: ".$fecha."\n\n";
$cuerpo .= "Nombre: ".$_POST["nombre"]."\n";
$cuerpo .= "E-mail: ".$_POST["email"]."\n\n";
$cuerpo .= "Telefono: ".$_POST["telefono"]."\n";
$cuerpo .= "Ocupacion: ".$_POST["ocupacion"]."\n";
$cuerpo .= "Compania:: ".$_POST["compania"]."\n";
$cuerpo .= "Direccion: ".$_POST["direccion"]."\n";
$cuerpo .= "Pais: ".$_POST["pais"]."\n";
$cuerpo .= "Ciudad: ".$_POST["ciudad"]."\n";
$cuerpo .= "Comentario: ".$_POST['comentario'];
function fncEmail($str) { $strFilter = array("hotmail.com", "mixmail.com", "latinmail.com"); $expEmail = ereg('^[a-z0-9]+([\.]?[a-z0-9_-]+)*@[a-z0-9]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$', $str); if ($expEmail == 1) { $expFilter = explode("@", $str); for ($i=0;$i<count($strFilter);$i++) { if ($expFilter[1] == $strFilter[$i]) { return 0; } } return 1; } else { return 0; }} if (fncEmail("user@mail.com") == 1) { echo "Direcci&#243;n correcta"; } else { echo "Direcci&#243;n incorrecta";}
//$adjuntar=$attachment[]
$cabecera.="From:".$personares." <".$email2."> \n";
mail ($destinatario,$asunto,$cuerpo,$cabecera);
echo "<script language=javascript>
alert('Tu mensaje ha sido enviado correctamente en 24 horas tendras una respuesta a tu solicitud, Gracias');
window.location.href='ig_contactenos.php';
</script>";
?>
acepto sugerencias
Aprende un poco de php. Te han dado varias soluciones pero estas implementando todas mal.
if (strpos("@hotmail.com",$_POST['email'] ) === false)
{ //envia correo
}
else{ //no envies correo
}
Ahi esta la funcion que te serviria para solamente enviar emails a hotmail. Leelo despacio y piensa como lo implementarias.
Oigan.... un comentario fuera del tema..... cada vez que chequeo los post que hay siempre aprendo algo nuevo y lo peor de todo es que me doy cuenta que me falta por aprender montones... jejeje ;D , pero muchas gracais por compartir lo que saben