[Solucionado] Problema con enviar email

Iniciado por Caster, 27 Diciembre 2011, 15:01 PM

0 Miembros y 2 Visitantes están viendo este tema.

Caster

Estoy haciendo un  formulario para enviar un email a una direccion predefinida pero me da error, códigos:

formulario.php
Código (php) [Seleccionar]
<html>
<body>
<form action="enviar_c.php" method="post">
<table width="200" heicht="200" border="0">
<tr>
<td>Asunto:</td>
<td><input type="text" name="asunto" /></td>
</tr>
<tr>
<td>Desde:</td>
<td><input type="text" name="desde" /></td>
</tr>
<tr>
<td>Mensaje:</td>
<td><textarea name="mensaje"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="enviar correo" /></td>
</tr>
</table>
</body>
</html>


enviar_c.php:
Código (php) [Seleccionar]
<?php
if(isset($_POST['asunto']) && !empty($_POST['asunto']) && 
   isset(
$_POST['desde']) && !empty($_POST['desde']) && 
   isset(
$_POST['mensaje']) && !empty($_POST['mensaje'])) 
{
$destinatario "(noquieroponerelemail)";
$asunto $_POST['asunto'];
$mensaje $_POST['mensaje'];



mail($destinatario,$asunto,$mensaje);

echo "correro enviado";
}else{
echo "correro no enviado";
}   

?>


El error es el siguiente:
Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing

m0rf

No esta habilitada la función mail en php.ini.

Si es un servidor gratuito olvidate. Sinó habilitalo.

Saludos.
Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?

Caster

Si, es gratuito, me descargué el AppServ

m0rf

Yo hablaba si es un servidor de hosting gratuito.

Para configurarlo en tu servidor, instala un servidor de correo. Después en el archivo php.ini tienes que configurar que dirección o dominio utiliza tu servidor y poco más me parece.

Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?

#!drvy

#4
No tiene nada que ver, ademas la mayoría de los host gratuitos famosos (000webhost por ejemplo) permiten el envió de mails.

Lo que dice el error es que no tienes definido el header From.
Para hacerlo añade el header e incluye lo en mail().

Ejemplo:

Código (php) [Seleccionar]
<?php
$para 
'papanoel@SantaClausVillage.org';
$titulo 'HDP dame mi juguete cabron!!!';
$mensaje 'QUE ME DES MI REGALO O ME CHIVO A LOS REYES MAGOS ¬¬';
$headers 'From: tucorreo@tudominio.com' "\r\n" .
    
'Reply-To: tucorreo@tudominio.com';
mail($para$titulo$mensaje$headers);
?>



PD: Bajo Windows las aplicaciones de servidores SMTP son una ***** total. En vez de instalar tu propio smtp utiliza por ejemplo el de Gmail.

Saludos

m0rf

Ya decia yo que se me pasaba algo por alto >.<

Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?

Caster

#6
Este es el nuevo código:
Código (php) [Seleccionar]
<?php
if(isset($_POST['asunto']) && !empty($_POST['asunto']) && 
   isset(
$_POST['desde']) && !empty($_POST['desde']) && 
   isset(
$_POST['mensaje']) && !empty($_POST['mensaje'])) 
{
$destinatario "miemail";
$asunto $_POST['asunto'];
$mensaje $_POST['mensaje'];
$headers 'From tucorreo@tudominio.com' "\r\n" .
'Reply-To: tucorreo@tudominio.com';



mail($destinatario,$asunto,$mensaje,$headers);

echo "correro enviado";
}else{
echo "correro no enviado";
}   

?>


Sigue dando el mismo error

En "tucorreo@tudominio.com", tengo que poner MI email, lo dejo o que tengo que poner?

m0rf

Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing

El error dice una cosa o la otra si no es el header form, tal vez sea la opción sendmail_from que la tienes que habilitar para qindows, ve a php.ini, quita la linea de comentario y pon el mail que vayas a utilizar.

Tal vez fallaban las dos cosas.

Si todos fuéramos igual de inteligentes no existiría la mediocridad porque no podríamos apreciarla. Aprecias la mediocridad?

#!drvy

Pues ami me parece re-raro esto.... xD



Saludos

Caster

Pff el php.ini es largo, sabeis más o menos donde está?