Algadar:
Ya lo solucioné.
Hay dos opciones, que instales un servidor smtp (que es un poco más complicado, y no creo que se justifique, o utilizar la versión para windows de Sendmail, que emula el comportamiento de sendmail en Unix.
primero tenes que descargarte desde
http://glob.com.au/sendmail/ el sendmail.zip (yo ya lo estaba usando, pero revisé y esta versión corrije el tema de enviar email sobre SSL.
Descomprimí el contenido en, por ejemplo
C:\sendmail
abri con el editor de texto "sendmail.ini" que se encuentra en esa carpeta, en ese archivo las lineas que comienzan con
; son comentarios
aca tengo una duda, al leer tu post veo que como
smtp estas usando
gmail (que utiliza el puerto
465), pero la cuenta que utilizas es
'[email protected]', que obviamente no es de Gmail,
te voy a pasar las dos configuraciones
si usas una cuenta de gmail:
sendmail.ini: [sendmail]
smtp_server=smtp.gmail.com
smtp_port=465
smtp_ssl=auto
default_domain=gmail.com
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=tuclavedegmail
; la que sigue force_sender, si tu php no tiene un campo $from ó $de
; que sería el email ingresado en el form, tenes que completarla con tu
; dirección de eamil, si no, dejala comentada
;force_sender=
;en la que sigue poné el nombre de tu dominio si lo tenes
; nunca pongas "localhost", si no, ponele gmail.com
hostname=gmail.com php.ini: (todo comentado menos sendmail_path
[mail function]
; For Win32 only.
;SMTP = smtp.gmail.com
;smtp_port = 465
; For Win32 only.
;sendmail_from
[email protected]
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "C:\sendmail\sendmail.exe -t"
si no usas una cuenta de gmail (supongamos usas
[email protected]):
[sendmail]
; puede cambiar, fijate cual es el smtp de grupometropolitano
; podria ser mail.grupometropolitano.com
smtp_server=smtp.grupometropolitano.com
; si no usa ssl seguramente será 25 el puerto
smtp_port=25
smtp_ssl=auto
default_domain=grupometropolitano.com
error_logfile=error.log
debug_logfile=debug.log
[email protected]
auth_password=tuclavedegrupometropolitanol
; la que sigue force_sender, si tu php no tiene un campo $from ó $de
; que sería el email ingresado en el form, tenes que completarla con tu
; dirección de eamil, si no, dejala comentada
;force_sender=
;en la que sigue poné el nombre de tu dominio si lo tenes
; nunca pongas "localhost", si no, ponele gmail.com
hostname=grupometropolitano.com
el php.ini, queda igual
No verifiqué tu script, podés`probar con la que sigue que funciona
Código PHP:
Ver original<?php
$aviso = "";
if ($_POST['email'] != "") {
$msj = $_POST['msj'];
// email de destino
$email = "[email protected]"; #####poner aqui el email al que se quiere que llegue el form // asunto del email
$asunto = "Formulario desde la Web ";
##########################
$para = "$email ";
$titulo = "$asunto";
$mensaje = "NOMBRE: " . $_POST['nombre'] . "\r\n";
$mensaje .= "APELLIDO: " . $_POST['apellido'] . "\r\n\r\n";
$mensaje .= "EMAIL: " . $_POST['email'] . "\r\n";
$mensaje .= "--------------------------------------------------------------\r\n";
$mensaje .= "$msj";
$mensaje .= "\r\n--------------------------------------------------------------\r\n";
$cabeceras = "From: " . $_POST['email'] . "\r\n" .
"Reply-To: no-reply" . "\r\n" .
'X-Mailer: PHP/' . phpversion() ."\r\n" . "Content-type: text/plain; charset='utf-8'";
$m =mail($para, $titulo, $mensaje, $cabeceras); if ($m) {
$aviso = "Su mensaje fue enviado correctamente";
} else {
$aviso = "Error al enviar";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Formulario</title>
</head>
<body>
<h2>Formulario</h2>
<?php if ($aviso != "") { ?>
<p><em><?php echo $aviso; ?></em></p>
<?php } ?>
<form action="" method="post">
<label for="nombre">Nombres</label> <input name="nombre" id="nombre" type="text" /><br />
<label for="empresa">Empresa</label> <input name="empresa" id="empresa" type="text" /><br />
<label for="email">Email</label> <input name="email" id="email" type="text" /><br />
<label for="mensaje">Comentario</label> <textarea name="msj" cols="30" rows="6" id="mensaje"></textarea><br />
<label for="envio"> </label> <button name="envio" id="envio" type="submit">Enviar</button>
</form>
</body>
</html>
en la carpeta c:\sendmail se van generar los archivos "debug.log" y "error.log", (si los hubiera) que te dan valiosa información sobre el proceso.
Recordá que siempre tras editar php.ini tenés que reiniciar el Apache.
Y por último, asegurate que tu furewall no bloquee a sendmail.exe, o nada te va a funcionar
Otro detalle que recorde ahora, algunos servidores de correo te piden que hagas pop antes de enviar con smtp, en ese caso en sendmail.ini, las lineas
;pop3_server=
;pop3_username=
;pop3_password=
tenés que descomentarlas y completar los valores (para gmail al menos, mno hace falta.
Saludos