mail() no me funciona, que estoy haciendo mal?

Iniciado por Drakaris, 26 Julio 2017, 20:08 PM

0 Miembros y 1 Visitante están viendo este tema.

Drakaris

Hola tengo un formulario que al dar clic en Enviar tendría que enviar un correo a  i****************@hotmail.com y no me envía ningún mensaje pero en cambio si me dice que se a enviado (un mensaje que yo puse).


<?php
 $para 
"i****************@hotmail.com";
 
$mensaje $_POST['message'];
 
$asunto $_POST['Subject'];
 if(
mail($para$asunto$mensaje)) {
 
 echo "Correo enviado con éxito";
 }else{
 
 echo "Lo sentimos, pero hubo un error al enviar el correo";
 }
?>

Lo increible, no es lo que ves, sino como es

PalitroqueZ

y desde el servidor en donde estás ejecutando el php ¿tienes la opción de enviar correos habilitado?

"La Economía planificada lleva de un modo gradual pero seguro a la economía dirigida, a la economía autoritaria y al totalitarismo" Ludwig Erhard

Drakaris

Cita de: PalitroqueZ en 26 Julio 2017, 20:11 PM
y desde el servidor en donde estás ejecutando el php ¿tienes la opción de enviar correos habilitado?
Me cree un cuenta de email en 260mb.net pero tampoco no sé si es así, es que no entiendo mucho de eso, y si vas a 260mb.net, en la página principal abajo te dice las características que tiene y te pone sendmail
Lo increible, no es lo que ves, sino como es

PalitroqueZ

Cita de: hacker 1 en 26 Julio 2017, 20:18 PM
Me cree un cuenta de email en 260mb.net pero tampoco no sé si es así, es que no entiendo mucho de eso, y si vas a 260mb.net, en la página principal abajo te dice las características que tiene y te pone sendmail

no vas a poder hacer uso de envio de correos usando el servicio free en 260mb.net

yo lo intenté por todas las vias y nunca pude lograrlo. Ellos tienen la opción bloqueada, tendrás que pagar o utilizar otro hosting que lo tengan habilitado.

"La Economía planificada lleva de un modo gradual pero seguro a la economía dirigida, a la economía autoritaria y al totalitarismo" Ludwig Erhard

animanegra

la funcion mail hace uso del servidor smtp de tu ordenador. Si el servidor no tiene smtp pues no podrás hacer eso. Tienes que configurar el sendmail o exim3 para hacerlo.

Si quieres enviar correos yo tiraría de usa phpmailer.

42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.

Drakaris

Cita de: animanegra en 27 Julio 2017, 14:07 PM
la funcion mail hace uso del servidor smtp de tu ordenador. Si el servidor no tiene smtp pues no podrás hacer eso. Tienes que configurar el sendmail o exim3 para hacerlo.

Si quieres enviar correos yo tiraría de usa phpmailer.

Hola animanegra me dí cuenta, gracias por vuestras respuestas, de que phpmailer es mucho mejor, ¿Además se puede   usar PHPMailer en un hosting gratuito como 260mb.net?

Esque tengo un códgio PHPMailer, me descargué los archivos PHPMailer: https://github.com/PHPMailer/PHPMailer, y dentro el formulario y el enviaremail.php, el formulario lo tengo controloado, pero en enviaremail.php puse el siguiente código:


<?php
require 
'PHPMailerAutoload.php';
require 'Constantes.php';

$mail = new PHPMailer();
/* Configuracion PHP Mailer */
$mail->isSMTP();

$mail->Host 'smtp.gmail.com';
$mail->SMTPAuth true;
$mail->Username 'email@g-t-e.260mb.net';
$mail->Password '*********';

$mail->SMTPSecure 'tls';
$mail->Port 587;

/*============================================*/
/* Configuración del Correo a Enviar */
$mail->setFrom('email@g-t-e.260mb.net');
$mail->FromName "1 ESO A";
$mail->AddAddress('q************@gmail.com');
$mail->Subject $_POST['Subject'];
$mail->Body $_POST['message'];

if ($mail->send()) {
echo "Correo enviado con éxito";
}else{
echo "Lo sentimos, no pudimos enviar el correo " $mail->ErrorInfo;
}
?>



Llamé a dos archivos, después puse el Host de gmail,smtp.gmail.com, ya que quiero enviar los email a  un correo gmail, después puse el usuario de 260mb.net que me cree una cuenta, después la contraseña, puse seguridad tls y por el puerto 587.

Después de hacer toda la configuración de PHPMailer, hice la configuración del correo,

El setfrom('') es mi correo de 260mb.net,  y le puse un nombre FromName, y le digo que el correo se lo envio a q************@gmail.com, el asunto, lo que hice es un $_POST que coja lo que ponga el cliente en la caja de texto "asunto" y lo mismo para el mensaje.

Y finalmente pongo un if(), si se envia el correo me dirá correo enviado, sino me dirá que hubo problemas.

El problema es que cuando lo ejecuto en 260mb.net me dice el mensaje de error (por lo menos funciona), y me dice lo siguiente: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting. ¿Que significa ese error? ¿estoy haciendo algo mal?¿Tengo que tener un SMTP en mi hosting?


Gracias
Lo increible, no es lo que ves, sino como es

Drakaris

Cita de: hacker 1 en 28 Julio 2017, 13:17 PM
Hola animanegra me dí cuenta, gracias por vuestras respuestas, de que phpmailer es mucho mejor, ¿Además se puede   usar PHPMailer en un hosting gratuito como 260mb.net?

Esque tengo un códgio PHPMailer, me descargué los archivos PHPMailer: https://github.com/PHPMailer/PHPMailer, y dentro el formulario y el enviaremail.php, el formulario lo tengo controloado, pero en enviaremail.php puse el siguiente código:


<?php
require 
'PHPMailerAutoload.php';
require 'Constantes.php';

$mail = new PHPMailer();
/* Configuracion PHP Mailer */
$mail->isSMTP();

$mail->Host 'smtp.gmail.com';
$mail->SMTPAuth true;
$mail->Username 'email@g-t-e.260mb.net';
$mail->Password '*********';

$mail->SMTPSecure 'tls';
$mail->Port 587;

/*============================================*/
/* Configuración del Correo a Enviar */
$mail->setFrom('email@g-t-e.260mb.net');
$mail->FromName "1 ESO A";
$mail->AddAddress('q************@gmail.com');
$mail->Subject $_POST['Subject'];
$mail->Body $_POST['message'];

if ($mail->send()) {
echo "Correo enviado con éxito";
}else{
echo "Lo sentimos, no pudimos enviar el correo " $mail->ErrorInfo;
}
?>



Llamé a dos archivos, después puse el Host de gmail,smtp.gmail.com, ya que quiero enviar los email a  un correo gmail, después puse el usuario de 260mb.net que me cree una cuenta, después la contraseña, puse seguridad tls y por el puerto 587.

Después de hacer toda la configuración de PHPMailer, hice la configuración del correo,

El setfrom('') es mi correo de 260mb.net,  y le puse un nombre FromName, y le digo que el correo se lo envio a q************@gmail.com, el asunto, lo que hice es un $_POST que coja lo que ponga el cliente en la caja de texto "asunto" y lo mismo para el mensaje.

Y finalmente pongo un if(), si se envia el correo me dirá correo enviado, sino me dirá que hubo problemas.

El problema es que cuando lo ejecuto en 260mb.net me dice el mensaje de error (por lo menos funciona), y me dice lo siguiente: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting. ¿Que significa ese error? ¿estoy haciendo algo mal?¿Tengo que tener un SMTP en mi hosting?


Gracias

Hola me registre en Roundcude Webmail en cpanel de 260mb.net, va todo bien pero no sé host es Webmail ¿o es el host de 260mb.net? y el puerto, no lo sé, como puedo saber que puertos están abiertos  en una pagina web con cmd? Porque lo otro esta bien
Lo increible, no es lo que ves, sino como es

engel lex

eso no se hace por fuerza bruta... eso te lo dice el host, lee la documentación
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Drakaris

Cita de: engel lex en 28 Julio 2017, 17:47 PM
eso no se hace por fuerza bruta... eso te lo dice el host, lee la documentación

Y donde tengo que ir del cpanel para ver la documentación?
Lo increible, no es lo que ves, sino como es

engel lex

no se XD no tiene una sección de documentacion, ayuda, faqs o similar? eres tu quien usa el servicio XD
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.