Ver Mensaje Individual
  #11 (permalink)  
Antiguo 27/12/2011, 20:46
Avatar de Adrii952
Adrii952
 
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 == 1goto 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 == 1goto 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