Información Incomoda en mi sitio web en php

Quiero preguntarle el siguiente inconveniente que tengo con la creación de un sitio web que tengo hecho en Dreamweaver utiulizando tecnología php y base de datos Mysql; resulta que desde la pagina web envío los datos al mysql, estos quedan bien registrados en la base de datos, pero el problema esta en que cuando el usuario da clic en el botón de enviar datos me aparece el siguiente mensaje:

Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port"

Cabe anotar que esta pagina debe de enviar un mail al destinartario indicándole de que ya esta registrado pero no se que debo de hacer para que funcione el envío automático de emails y que no aparezca este incomodo mensaje..

He visto posibles soluciones en internet y me dicen que debo de configurar unos puertos pero no se como se debe de hacer eso..

Gracias, si deseas el código aqui te lo paso

¿

<?php
$nombre=$_POST["Nombre2"];
$email=$_POST["Email2"];
$pais_ciudad=$_POST["Pais_Ciudad2"];
/*Aqui recibo los datos enviados desde el formulario anterior y los recibo por post, asignandolos a una variable a cada uno de los datos, para posteriormente ingresarlos a la base de datos*/
/////Aqui voy a imprimir por pantallas las varibles que asigne, para ver que traen(esto lo hago para que veas como funciona), no es necesario que lo utilices
echo $nombre;
echo "<br>";
echo $email;
echo "<br>";
echo $pais_ciudad;
function Conectarse(){
if (!($link=mysql_connect("localhost","root","califele2011"))){ //realiza la conexión a la base de datos
echo "Error conectando a la base de datos. Por favor comunique con el administrador ";
exit();
}
if (!mysql_select_db("omnilife",$link)){
echo "Error seleccionando la base de datos. Por favor comunique con el administrador";
exit();
}
return $link;
}
if ($_POST) { //si estan vacios los textos para que no me muestre "Digitar Nombre al abrir la // pagina"
$link = Conectarse(); # con esto me conecto a la DB
if (mysql_query("INSERT INTO boletin (Nombre,Email,Pais_Ciudad) values ('$nombre','$email','$pais_ciudad');")){
/*$sql= mysql_query("SELECT COUNT(*) FROM boletin WHERE Email= '$email' ",$link)or die(mysql_error());
if ($sql >= 1) {
echo "Campo Email ya esta registrado";
}ELSEif ($sql <= 1 or $sql = 0){
echo "Se a enviado información a su Email";
} */
$consulta="select * from boletin where Email='$email'";
$resultado=mysql_query($consulta) or die (mysql_error());
echo $consulta;
if (mysql_num_rows($resultado) == 0)
{
echo "se ha enviado información a su Email.";
}
else{
echo "el campo mail ya esta registrado.";
}
/*if ($sql != 0) {
echo "Campo Email ya esta registrado";
}ELSE {
echo "Se a enviado información a su Email";
} */
}
//if (mysql_query("INSERT INTO boletin (Nombre,Email,Pais_Ciudad) values ('$nombre','$email','$pais_ciudad');")){ */
/*$sql= mysql_query("SELECT * FROM boletin where Email='$email'",$link)or die(mysql_error());
$numero=mysql_num_rows($sql);
if($numero != 0){echo "EL EMAIL YA EXISTE";}else{echo "EL CORREO SE PUEDE AGREGAR A LA BD";} */
//echo $email2;
//} // Ojo aqui cierro cierro el if
//mysql_select_db("omnilife", $link); //para que me borre campos vacios al cargar la pagina
//mysql_query("DELETE FROM boletin WHERE Nombre = '' "); //borre campos que queden en blanco
$destinatario = "[email protected]";
$asunto = "Este mensaje es de prueba";
$cuerpo = '
<html>
<head>
<title>Prueba de correo</title>
</head>
<body>
<h1>Hola amigos!</h1>
<p>
<b>Bienvenidos a mi correo electrónico de prueba</b>. Estoy encantado de tener tantos lectores. Este cuerpo del mensaje es del artículo de envío de mails por PHP. Habría que cambiarlo para poner tu propio cuerpo. Por cierto, cambia también las cabeceras del mensaje.
</p>
</body>
</html>
';
//para el envío en formato HTML
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
//dirección del remitente
$headers .= "From: Miguel Angel Alvarez <[email protected]>\r\n";
//dirección de respuesta, si queremos que sea distinta que la del remitente
$headers .= "Reply-To: [email protected]\r\n";
//ruta del mensaje desde origen a destino
$headers .= "Return-path: [email protected]\r\n";
//direcciones que recibián copia
$headers .= "Cc: [email protected]\r\n";
//direcciones que recibirán copia oculta
$headers .= "Bcc: [email protected],[email protected]\r\n";
mail($destinatario,$asunto,$cuerpo,$headers);
}
mysql_close($link);# Con esto cierro la conexión a la DB
?>

2 respuestas

Respuesta
1

Si te aparece ese mensaje es porque no se puede conectar al servidor de correo,

¿Estas trabajando en un entorno windows?, ¿Dónde esta tu servidor de correo? ¿Y qué puerto usa?

La configuración del servicio de correo se configura en el archivo php.ini, busca el apartado [mail function] de dicho archivo y adáptalo a tu sistema de correo.

Slds

Hola amigo muchas gracias pues el servidor de correo electrónico que tengo predefinido para enviar correos no se de verdad cual es pero escarbando aquí en la web vi en varias paginas que hay que bajar un servidor llamado MinRelay, lo ejecuto pero al insertar registros a la pagina ahora me me aparece en una nueva pagina web lo siguietne:

select * from boletín where Email='[email protected]'el campo mail ya esta registrado.

Siendo que este registro es nuevo en la base de datos me dice que ya esta registrado y ademas este mensaje lo tengo programado solo para que muestre solo el mensaje no la consulta sql como aparece en el aparto anterior ,,

No se como arreglar este inconveniente..

Att. Hernán Camilo Martínez V.

Muchas gracias.

Hmm, pues veo todo bien, mirando tu código, veo que tienes este código

 if (mysql_query("INSERT INTO boletin (Nombre,Email,Pais_Ciudad) values ('$nombre','$email','$pais_ciudad');")){
 $consulta="select * from boletin where Email='$email'";
 $resultado=mysql_query($consulta) or die (mysql_error());
 echo $consulta;
 if (mysql_num_rows($resultado) == 0) {
 echo "se ha enviado información a su Email.";
 }
 else{
 echo "el campo mail ya esta registrado.";
}
}

en la parte donde consultas el correo insertado si retorna 0, el presentara:

Echo "se ha enviado información a su Email.";

y si consulta el email registrado va a retornar

Echo "el campo mail ya esta registrado.";

ahora lo que veo es que hay un código un poco confuso, intenta el siguiente

 $query="INSERT INTO boletin (Nombre,Email,Pais_Ciudad) values ('$nombre','$email','$pais_ciudad');";
 if (mysql_query($query, $link)){
 $consulta="select * from boletin where Email='$email'";
 $resultado=mysql_query($consulta, $link) or die (mysql_error());
 if (mysql_num_rows($resultado) == 0) {
 echo "No se pudo registrar la informacion.";
 exit;
}
}

que modifica el fragmento que te menciono al principio de esta respuesta.

Slds

Respuesta
1

Esa fácil mientras tanto si lo que quieres es quitar es error solo tienes que poner antes de comenzar el código es los siguiente

ini_set('display_errors', Off);

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas