Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: gowend en 12 Enero 2011, 22:54 pm



Título: problemas funcion mail()
Publicado por: gowend en 12 Enero 2011, 22:54 pm
Hola a todos soy nuevo en el foro y con pocos conocimentos de PHP (cada dia aprendo algo nuevo :) ). Tengo un problema con la función mail() que es la encargada de enviar correos electrónicos desde el pc con el apache 2.0.

El código PHP que utilizo es el siguiente:

<?php
$correo = "*****@hotmail.com";
$correo2 = "****@gmail.com";
$asunto = "Envio e-mails";
$cuerpo = "Por fin FUNCIONO!!!!";
mail($correo,$asunto,$cuerpo,"FROM: $correo2");
?>


No creo que el código tenga algún error, ya que lo hice lo mas sencillo posible.

Cuando lo ejecuto en el navegador me arroja lo siguiente:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\AppServ\www\zcorreo.php on line 7

También he buscado alguna solucion para este inconveniente pero sin ningun resultado positivo; Tambien configure el php.ini en la funcion mail como lo indicaban algunos tutoriales que vi pero Nada!!!

Le agradezco a alguien que me pueda ayudar con este inconveniente, de ante mano muchas GRACIAS!!!!  :)



Título: Re: problemas funcion mail()
Publicado por: madpitbull_99 en 12 Enero 2011, 23:00 pm
Citar
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\AppServ\www\zcorreo.php on line 7

Te dice que no se puede conectar al servidor SMTP. Para enviar emails desde PHP debes tener un servidor de correo instalado.

Por lo que veo el AppServ no incorpora ningún servidor de correo.


Título: Re: problemas funcion mail()
Publicado por: gowend en 13 Enero 2011, 00:18 am
Osea que appserv no sirve para enviar correos electrónicos?...  :huh:


Título: Re: problemas funcion mail()
Publicado por: Devilboy.Devil en 13 Enero 2011, 00:34 am
Osea que appserv no sirve para enviar correos electrónicos?...  :huh:

No, con appserv no vas a poder mandar correos, ni con hosting gratuitos, solo los de pago incorporar la funcion mail


Título: Re: problemas funcion mail()
Publicado por: gowend en 13 Enero 2011, 02:14 am
No, con appserv no vas a poder mandar correos, ni con hosting gratuitos, solo los de pago incorporar la funcion mail


Lo que quieres decir es que ningún servidor local deja utilizar la función mail()? :huh:


Título: Re: problemas funcion mail()
Publicado por: Devilboy.Devil en 13 Enero 2011, 16:56 pm
Lo que quieres decir es que ningún servidor local deja utilizar la función mail()? :huh:

asi es, no vas a poder usarlo, amenos que uses algun servidor smtp pero te comento que yo nunca he podido hacerlo y la verdad no se si se pueda


Título: Re: problemas funcion mail()
Publicado por: gowend en 13 Enero 2011, 21:24 pm
asi es, no vas a poder usarlo, amenos que uses algun servidor smtp pero te comento que yo nunca he podido hacerlo y la verdad no se si se pueda


Bueno.....  :-( es desalentadora la noticia pero no importa algo se aprendera nuevo hoy  ::).................. Gracias a todos los que intentaron ayudarme  ;D


Título: Re: problemas funcion mail()
Publicado por: Camacho21 en 20 Enero 2011, 18:05 pm
En realidad si funciona con el servidor apache, solo debes modificar el archivo php.ini o lo que yo recomiendo es usar la funcion ini_set() que recibe dos parametros. El primero es el objeto dentro del php.ini a modificar y el segundo es el nuevo valor que le vas a dar. Aqui te dejo un ejemplo, a mi me funciona con el servidor de cantv.

ini_set("SMTP","mail.cantv.net");
ini_set("smtp_port",25);
ini_set("sendmail_from","turemitente@gmail.com");

Pones esto al principio del codigo y lo demas lo dejas como lo tienes osea te quedaria algo asi:

Código:
<?php
ini_set("SMTP","mail.cantv.net");
ini_set("smtp_port",25);
ini_set("sendmail_from","turemitente@gmail.com");
$correo = "*****@hotmail.com";
$correo2 = "****@gmail.com";
$asunto = "Envio e-mails";
$cuerpo = "Por fin FUNCIONO!!!!";
mail($correo,$asunto,$cuerpo,"FROM: $correo2");
?>

Asi te deberia funcionar, a mi me funciona con el appserv en mi computadora, pero tengo este codigo alojado en un servidor gratuito y no me funciona, y supuestamente ese servidor (byethost) tiene disponible la funcion mail para alojamiento gratuito. Si alguien me puede ayudar se lo agradeceria.


Título: Re: problemas funcion mail()
Publicado por: .:Snifer:. en 20 Enero 2011, 18:09 pm
Una solucion que te puedo dar es que use el USBWEBSERVER con este pude hacer funcionar tranquilamente..

Saludos :P


Título: Re: problemas funcion mail()
Publicado por: Camacho21 en 20 Enero 2011, 18:12 pm
Una solucion que te puedo dar es que use el USBWEBSERVER con este pude hacer funcionar tranquilamente..

Saludos :P

Eso vendria a ser algo parecido al phpmailer? Yo lo tenia configurado con el phpmailer usando el smtp de gmail y me funcionaba perfecto, pero desde hace unos dias dejo de funcionar :S ... Probare si me funciona con el USBWEBSERVER gracias por la respuesta!


Título: Re: problemas funcion mail()
Publicado por: .:Snifer:. en 20 Enero 2011, 18:16 pm
Emm no en realidad es un servidor para USB portable se puede decir...


Mas informacion puedes tener aqui.Sitio de USBWEBSERVER (http://www.usbwebserver.net/)


Título: Re: problemas funcion mail()
Publicado por: Devilboy.Devil en 20 Enero 2011, 20:37 pm
En realidad si funciona con el servidor apache, solo debes modificar el archivo php.ini o lo que yo recomiendo es usar la funcion ini_set() que recibe dos parametros. El primero es el objeto dentro del php.ini a modificar y el segundo es el nuevo valor que le vas a dar. Aqui te dejo un ejemplo, a mi me funciona con el servidor de cantv.


Alo que me refiero es que jamas va a poder mandar correos con el puro apache.

Si usas un smtp ahi claro que si, pero el correo sería de gmail por ejemplo y no va  a poder mandar menssajes usando otro dominio por ejemplo

hacker@elhacker.com


si fuera asi imaginate cuanto carder no aprovecharia esto


Título: Re: problemas funcion mail()
Publicado por: gowend en 24 Enero 2011, 22:52 pm
En realidad si funciona con el servidor apache, solo debes modificar el archivo php.ini o lo que yo recomiendo es usar la funcion ini_set() que recibe dos parametros. El primero es el objeto dentro del php.ini a modificar y el segundo es el nuevo valor que le vas a dar. Aqui te dejo un ejemplo, a mi me funciona con el servidor de cantv.

ini_set("SMTP","mail.cantv.net");
ini_set("smtp_port",25);
ini_set("sendmail_from","turemitente@gmail.com");

Pones esto al principio del codigo y lo demas lo dejas como lo tienes osea te quedaria algo asi:

Código:
<?php
ini_set("SMTP","mail.cantv.net");
ini_set("smtp_port",25);
ini_set("sendmail_from","turemitente@gmail.com");
$correo = "*****@hotmail.com";
$correo2 = "****@gmail.com";
$asunto = "Envio e-mails";
$cuerpo = "Por fin FUNCIONO!!!!";
mail($correo,$asunto,$cuerpo,"FROM: $correo2");
?>

Asi te deberia funcionar, a mi me funciona con el appserv en mi computadora, pero tengo este codigo alojado en un servidor gratuito y no me funciona, y supuestamente ese servidor (byethost) tiene disponible la funcion mail para alojamiento gratuito. Si alguien me puede ayudar se lo agradeceria.

Al ejecutar el codigo anterior me arroja el siguiente error:

Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 <*******@hotmail.com>... Relaying denied. IP name possibly forged [186.82.160.54] in C:\AppServ\www\pry\Scripts\apsic-correo.php on line 9

a que se deberá  :huh:


Título: Re: problemas funcion mail()
Publicado por: #!drvy en 24 Enero 2011, 23:24 pm
Alo que me refiero es que jamas va a poder mandar correos con el puro apache.

Si usas un smtp ahi claro que si, pero el correo sería de gmail por ejemplo y no va  a poder mandar menssajes usando otro dominio por ejemplo

hacker@SPAM(3)


si fuera asi imaginate cuanto carder no aprovecharia esto

@Devilboy.Devil estas algo equibocado. Instalando un servidor smtp es perfectamente posible enviar correo desde tu PC. Y no es necesario que tengas una cuenta en gmail o hotmail o cualquier otro, puesto que el servidor que la envia es tu ordenador por lo tanto aparecera tu propia IP. Aparte que el "FROM" es perfectamente manipulable desde PHP. Y asi puedes hacer que venga desde policia.es porejemplo (con el problema de que no sera vertificado y muy posiblemente acabe en la carpeta de spam). La razon por la que los carders no aprovechan eso ? Simple, porque en cuanto un usuario mire la IP de la que proviene el correo apareceran las suyas =).

Otra cosa es que ya la mayoria de hostings gratis de hoy en dia, incorporan la funcion mail().

@gowend
El ultimo codigo que has pegado se connecta a otro servidor SMTP para enviar el correo y al parecer se ha prohibido.

Podrias probar instalar tu propio servidor.. creo que uno de los que funcionan todavia es el Mercury..

::http://www.pmail.com/

PD:El USBWEBSERVER en su ultima version ya no incorpora el SMTP.


Saludos


Título: Re: problemas funcion mail()
Publicado por: .:Snifer:. en 24 Enero 2011, 23:45 pm
Pero el UsbWebserver el 7 lo tiene incorporado.

Saludos :P


Título: Re: problemas funcion mail()
Publicado por: Feedeex en 27 Enero 2011, 05:20 am
Para mail() se puede usar minirelay o mercury, que viene con xampp. Y sino puedes probar con la libreria PHPMailer: http://www.programacion.com/articulo/uso_de_la_clase_phpmailer_213


Título: Re: problemas funcion mail()
Publicado por: Inyhir en 24 Febrero 2013, 22:06 pm
Holaaa!! a mi me salia el mismo error con WAMPSERVER y lo soluciones con el SQ SMTP Server 3,... tal como sale en el siguiente link:

http://www.emagister.com/curso-apache-php-mysql-phpmyadmin-como-modulo-apache/instalacion-servidor-correo-smtp


el correo me lo mando a SPAM.  :o

y siguiendo este codigo:

<?php
ini_set("SMTP","localhost");//Cambien mail.cantv.net Por localhost ... ojo, ojo OJO
ini_set("smtp_port",25);
ini_set("sendmail_from","turemitente@gmail.com");

$too = "xxxxx@yahoo.com" ;//pon tu correo para probar
$subject = "TEST" ;
$message = "User message" ;
$user_email = "xxxxxxxxxxx@gmail.com" ; // valid POST email address

$headers = "From: $user_email " ;
$headers .= "Reply-To: $too " ;
$headers .= "Return-Path: $too " ;
$headers .= "X-Mailer: PHP/" . phpversion (). " " ;
$headers .= 'MIME-Version: 1.0' . " " ;
$headers .= 'Content-type: text/html; UTF-8' . " " ;

if( mail ( $too , $subject , $message , $headers )) echo 'SENT' ;

?>