27/12/2011, 20:46
|
| | | Fecha de Ingreso: diciembre-2011 Ubicación: Madrid
Mensajes: 116
Antigüedad: 13 años Puntos: 7 | |
Respuesta: Función mail() no envía nada @emprear Sólo puse parte del código por eso no sale cuando defino $email
Respecto a los ejemplos, usé uno pero tendría algo mal y no funcionaba, reemplazando un par de cosas conseguí que enviara el email.
Este es el código fuente que funciona de mi proyecto por si le quieres hechar un vistazo: Código PHP: <?php include("class.phpmailer.php"); include("class.smtp.php"); header("Content-type: text/html; charset=utf-8"); //Comprobación de los campos if ($_POST['password'] !== $_POST['cpassword']) { echo ('<span style="color:#FF0000">Error: Las contraseñas no coinciden.</span><br>'); $error = 1; } if ($_POST['password'] == false) { echo ('<span style="color:#FF0000">Error: El campo de la contraseña está vacío.</span><br>'); $error = 1; } if ($_POST['usuario'] == false) { echo ('<span style="color:#FF0000">Error: El campo del nombre de usuario está vacío.</span><br>'); $error = 1; } if ($_POST['email'] == false) { echo ('<span style="color:#FF0000">Error: El campo del correo electrónico está vacío.</span><br>'); $error = 1; } if ($error == 1) goto end; $usuario = trim($_POST['usuario']); $usuario = ereg_replace("[^A-Za-z0-9ñÑáéíóú_.]","",$usuario); if ($usuario !== trim($_POST['usuario'])) { echo ('<span style="color:#FF0000">Error: No se permiten caracteres especiales en el nombre de usuario.</span><br>'); $error = 1; } if (strlen($usuario) < 2) { echo ('<span style="color:#FF0000">Error: Nombre de usuario demasiado corto.</span><br>'); $error = 1; } $contraseña = ($_POST['password']); $contraseña = ereg_replace("[^A-Za-z0-9ñÑçÇáéíóú$#%&¬_.:;,-]","",$contraseña); if ($contraseña !== trim($_POST['password'])) { echo ('<span style="color:#FF0000">Error: No se permiten caracteres especiales en la contraseña.</span><br>'); $error = 1; } if (strlen($_POST['password']) < 8) { echo ('<span style="color:#FF0000">Error: Contraseña demasiado corta.</span><br>'); $error = 1; } $contraseña = sha1(md5(trim($_POST['password']))); $email = trim($_POST['email']); $verificacion_arroba_email = strstr($email,"@"); if ($verificacion_arroba_email == false) { echo ('<span style="color:#FF0000">Error: Dirección de email no válida.</span><br>'); $error = 1; } if (strlen($email) < 6) { echo ('<span style="color:#FF0000">Error: Dirección de email demasiado corta.</span><br>'); $error = 1; } if ($error == 1) goto end; $fecha = time(); $ipusuario = $_SERVER['REMOTE_ADDR']; $conexion = mysql_connect("localhost","root","mipasssql"); if (!$conexion) { die('Error de conexión a la base de datos'); } //Fin de comprobación de formulario, empezamos con escribir los datos en el registro y verificar que ninguno de los datos existan. mysql_select_db("ProyectoX", $conexion); $sql = "INSERT INTO usuarios (nombre_usuario, pass_usuario, email_usuario, fecha_registro, ip_registro, fecha_ultimo_acceso, ip_ultimo_acceso, archivos_subidos, espacio_usado_mb, activo) VALUES ('$usuario','$contraseña','$email','$fecha','$ipusuario','$fecha','$ipusuario','0','0', '1')"; if (!mysql_query($sql,$conexion)) { die('Error: ' . mysql_error()); } else { echo "Registro en la BD completado satisfactoriamente<br>Enviando email de validación...<br>"; } mysql_close($conexion); //////////////////////////Envíamos el email de validación///////////////////////////////////// error_reporting(E_STRICT);
$mail = new PHPMailer();
$body = file_get_contents('contents.html'); $body = eregi_replace("[\]",'',$body);
$mail->IsSMTP(); // telling the class to use SMTP $mail->SMTPAuth = true; // enable SMTP authentication $mail->SMTPSecure = "ssl"; // sets the prefix to the servier $mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server $mail->SMTPDebug = 2; // enables SMTP debug information (for testing) // 1 = errors and messages // 2 = messages only $mail->Port = 465; // set the SMTP port
$mail->Username = "[email protected]"; // GMAIL username $mail->Password = "mipassgmail"; // GMAIL password
$mail->SetFrom = "[email protected]"; $mail->FromName = "ProyectoX"; $mail->Subject = "Verificación de la cuenta de ProyectoX"; $mail->AltBody = "This is the body when user views in plain text format"; //Text Body $mail->WordWrap = 50; // set word wrap
$mail->MsgHTML($body);
$mail->AddReplyTo("[email protected]","Webmaster");
$mail->AddAddress("$email","$usuario");
$mail->IsHTML(true); // send as HTML
if(!$mail->Send()) { echo ('<span style="color:#FF0000">Error: No se pudo enviar el email de validación.</span><br>'); echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Se envió un email de validación a su dirección de correo electrónico."; } //############################### end: echo ("<br>Serás automáticamente redirigido en 6 segundos."); echo '<meta http-equiv="Refresh" content="6;url=registrarse.html">'; ?> Todavía le falta para estar terminado..Ah y..Cualquier sugerencia es bienvenida, que nada mas estoy empezando a aprender PHP :P |