Foros del Web » Programando para Internet » PHP »

Me es imposible usar PHPMailer

Estas en el tema de Me es imposible usar PHPMailer en el foro de PHP en Foros del Web. Saludos amigos del foro. Antes que nada, muchas gracias por todas las veces que me han sacado de apuros (siempre quise dar las gracias a ...
  #1 (permalink)  
Antiguo 27/08/2013, 22:08
 
Fecha de Ingreso: agosto-2013
Ubicación: Talca
Mensajes: 40
Antigüedad: 10 años, 7 meses
Puntos: 1
Me es imposible usar PHPMailer

Saludos amigos del foro.
Antes que nada, muchas gracias por todas las veces que me han sacado de apuros (siempre quise dar las gracias a toda esa gente que de una u otra manera me ha resuelto las dudas).

Bueno, luego de esa tediosa intro, vamos a lo importante jeje.

Tengo un formulario, en el cual se hacen pedidos, se está usando la clase PHPMAILER, y el error que se me presenta es que al enviar los datos del formulario hacia el correo de destino que es el dueño de la pagina, me manda el mensaje de:

could not instantiate mail function

he buscado mucho en google, y no logro dar con la solucion, tal vez porque soy un tanto nuevo en esto de servidores, hosting y esas cosas.

El codigo PHP es el siguiente:

Código PHP:
<?php
require_once('class.phpmailer.php');
$asunto $_POST['asunto'];
$nombre $_POST['nombre'];
$email $_POST['mail'];
$telefono $_POST['telefono'];
$empresa $_POST['empresa'];
$descripcion $_POST['descripcion'];
$adjunto $_FILES['adjunto']['name'];
$adjuntotmp $_FILES['adjunto']['tmp_name'];

$mail = new PHPMailer();
$mail->Host 'localhost';
$mail->From $email;
$mail->FromName $nombre;
$mail->Subject $asunto;
$mail->AddAddress('[email protected]');
if (
adjunto != '') {
    
$mail->AddAttachment($adjuntotmp$adjunto);
}
$body '<strong>Nombre</strong>: ' $nombre '<br />';
$body .= '<strong>Mail</strong>: ' $email '<br />';
$body .= '<strong>Teléfono</strong>: ' $telefono '<br />';
$body .= '<strong>Empresa</strong>: ' $empresa '<br />';
$body .= '<strong>Descripción</strong>: ' $descripcion '<br />';
$mail->Body $body;
$mail->CharSet 'UTF-8';
$mail->IsHTML(true);
$mail->Send();

echo 
'<script type="text/javascript">alert("Su informacion ha sido enviada con exito !");location.href="/?home";</script>';
?>
Hace unos dias me toco programar un formulario para otro cliente, en el cual use solamente la función mail de php (nada de phpmailder) y no tuve problema alguno.
Para este caso, tambien probe solamente con la funcion mail y al enviar los datos desde el formulario me sale el siguiente error:

mail() [function mail] STMP Server response 530 5.7.3 Client was not authentificated.

Si pudieran guiarme para encontrar la solucion a este problema, se los agradeceria mucho. Saludos amigos!!.

Última edición por Cristian23CL4PTP; 27/08/2013 a las 22:16
  #2 (permalink)  
Antiguo 27/08/2013, 22:43
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Me es imposible usar PHPMailer

Esa pagina donde tienes ese formulario la tienes en linea? o en tu computadora?
  #3 (permalink)  
Antiguo 27/08/2013, 22:48
 
Fecha de Ingreso: agosto-2013
Ubicación: Talca
Mensajes: 40
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Me es imposible usar PHPMailer

Gracias por responder amigo.
La pagina esta en linea, tiene su dominio, y está alojada en un hosting.
Si necesitas mas datos, házmelo saber.
Un saludo !!
  #4 (permalink)  
Antiguo 27/08/2013, 23:02
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Me es imposible usar PHPMailer

Trate de usar SMTP para enviar correo electrónico:
$mail->IsSMTP();
$mail->Host = "smtp.example.com";

/ / Usa sólo cuando SMTP requiere autenticación
$mail->SMTPAuth = true;
$mail->Username = 'smtp_username';
$mail->Password = 'smtp_password';
  #5 (permalink)  
Antiguo 27/08/2013, 23:07
 
Fecha de Ingreso: agosto-2013
Ubicación: Talca
Mensajes: 40
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Me es imposible usar PHPMailer

En los campos como Host, username y password que debo poner?, algún dato relacionado con el proveedor de hosting? en muchas paginas vi lo mismo, pero aun no entiendo que es lo que hace ni que datos debo tener exactamente.
Saludos !!.
  #6 (permalink)  
Antiguo 27/08/2013, 23:13
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Me es imposible usar PHPMailer

Muchas veces el SMTP esta protegido por contraseña y requiere que autentifique su usuario y contraseña busque en la configuracion o informacion de su provedor de hosting
Código PHP:
$mail->Username 'smtp_username //Aqui iria tu usuario de SMTP';
$mail->Password 'smtp_password //Aqui iria tu contraseña de SMTP'
  #7 (permalink)  
Antiguo 27/08/2013, 23:25
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Me es imposible usar PHPMailer

a lo que me refiero esque estarias mandando de un correo ya creado previamente en un servicio de correo electronico

Cita:
$mail->Username = "[email protected]";
$mail->Password = "mipassword";
$mail->From = "[email protected]";
Igual que aquí proponen usar el servidor de midominio, también se puede usar el servidor de gmail. Teniendo una cuenta de correo de gmail mandar a través de smtp.gmail.com y recibir en una cuenta gmail, logicamente pondrías tu contraseña y tu cuenta en donde pone:

Cita:
$mail->Username = "[email protected]";
$mail->Password = "mipassword";
  #8 (permalink)  
Antiguo 27/08/2013, 23:32
 
Fecha de Ingreso: agosto-2013
Ubicación: Talca
Mensajes: 40
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Me es imposible usar PHPMailer

Amigo gracias por tus respuestas.
La cosa es que solamente quiero usar la clase de PHPMailer para recibir mails (nada mas), ya que en un formulario se detalla un pedido, y los datos recogidos de ese formulario, se envian al mail del dueño de la pagina.
Y con respecto a lo del correo, se tiene un correo corporativo, nada de gmail y esas cosas.
Y aun no entiendo eso del smtp, la verdad es que mientras mas leo mas menos entiendo jeje.
Saludos !!.
  #9 (permalink)  
Antiguo 27/08/2013, 23:35
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Me es imposible usar PHPMailer

Agrega estas lineas:

Cita:
//Asignamos a Host el nombre de nuestro servidor smtp
$mail->Host = "smtp.micuenta.com"; //Puede ser (smtp.gmail.com) o (smtp.hotmail.com)

$mail->SMTPAuth = true;

$mail->Username = "[email protected]"; //Puede ser ([email protected]) o ([email protected])

$mail->Password = "mipassword"; //La pass de tu (gmail.com) o (hotmail.com)

$mail->From = "[email protected]"; //Puede ser ([email protected]) o ([email protected])

$mail->FromName = "Eduardo Garcia"; //Tu nombre
  #10 (permalink)  
Antiguo 27/08/2013, 23:47
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Me es imposible usar PHPMailer

Mi amigo la cuestion es que si planeas hacerlo con PHPMailer no te queda de otra ademas de que es mejor que mail() porque algunos correos enviados por mail() nunca llegan ya que el servidor de correo los detecta como basura.

No necesita ser gmail fue un ejemplo se puede con un corporativo como tu dices tambien.

hay te ba con manzanitas:

Necesitas este archivo de principio class.phpmailer.php descargalo de aqui https://github.com/PHPMailer/PHPMailer es necesario para poder usar PHPMailer()

Código PHP:
// Ruta de la clase PHPMailer.
require_once('lib/phpmailer/class.phpmailer.php');
$mail = new PHPMailer();
$body 'El cuerpo del mensaje aquí';
// Comprobamos si esta SMTP.
$mail->IsSMTP();
// Esto es para gestionar el Debug.
//1. Muestra errores y mensajes.
//2. Muestra solo mensajes.
$mail->SMTPDebug 2;
// Si el servidor requiere autentificación.
$mail->SMTPAuth true;
// El host del servidor de correos.
$mail->Host "mail.yourdomain.com";
// El puerto del servidor de correos.
$mail->Port 26;
// El correo y contraseña de donde saldran los mensajes.
$mail->Username "yourname@yourdomain";
$mail->Password "yourpassword";
// Incluimos el From que llegara al los correos enviados.
$mail->SetFrom('[email protected]''Nombre de Cuenta');
// Por si se tiene que renviar a otro correo.
$mail->AddReplyTo("[email protected]","First Last");
// El asunto del mensaje.
$mail->Subject "Asunto del mensaje";
// El cuerpo del mensaje se envia aquí.
$mail->MsgHTML($body);
// Se asigna la dirección de correo a donde se enviará el mensaje.
$address "[email protected]";
$mail->AddAddress($address"John Doe");
// Si hay archivos adjuntos se mandan así.
$mail->AddAttachment("images/phpmailer.gif");
$mail->AddAttachment("images/phpmailer_mini.gif");
// Comprobamos que el correo se ha enviado.
if(!$mail->Send()) {
    echo 
"Mailer Error: " $mail->ErrorInfo;
} else {
    echo 
"Message enviado!";

  #11 (permalink)  
Antiguo 27/08/2013, 23:55
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Me es imposible usar PHPMailer

si tengo un uno interno de la empresa… tengo que poner en la ip en $mail->Host = “xx.xx.xx.xx”; ??

Así es, debes agregar la dirección IP o dominio del host que te provee el servicio de mails, generalmente es smtp.dominio.com, ya con eso, solo es necesario agregar tu usuario y contraseña ligada a éste servicio para que tus correos salgan correctamente.
  #12 (permalink)  
Antiguo 28/08/2013, 00:13
 
Fecha de Ingreso: agosto-2013
Ubicación: Talca
Mensajes: 40
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Me es imposible usar PHPMailer

Amigo en serio muchas gracias por toda tu ayuda.
Estoy intentando que los correos me lleguen a una cuenta hotmail, y la configuración la tengo así:

$mail = new PHPMailer();
$mail->Host = "smtp.hotmail.com";
$mail->SMTPAuth = true;
$mail->Username = "[email protected]"; //Puede ser ([email protected]) o ([email protected])
$mail->Password = "passdemicuenta"; //La pass de tu (gmail.com) o (hotmail.com)
$mail->From = $email;
$mail->FromName = $nombre;
$mail->Subject = $asunto;
$mail->AddAddress('[email protected]');

Y ahora al enviar los datos desde el formulario, no me muestra ningún error, pero tampoco me llegan los datos al correo, que estaré haciendo mal? Salu2
  #13 (permalink)  
Antiguo 28/08/2013, 00:51
 
Fecha de Ingreso: julio-2013
Mensajes: 158
Antigüedad: 10 años, 9 meses
Puntos: 6
Respuesta: Me es imposible usar PHPMailer

En principio cambia:

Código PHP:
mail->From $email;
$mail->FromName $nombre
por:
Código PHP:
$mail->SetFrom($email$nombre); 
como lo dejaste simpre pon el codigo completo.
  #14 (permalink)  
Antiguo 28/08/2013, 06:08
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Me es imposible usar PHPMailer

Esto no es tan complejo si se lo piensa, el envio de mails no tienen ningun secreto. Si no te funciona en el servidor, es porque o no tienes configurado correctamente el envío de correos, quizá es un hosting limitado...

Si no te funciona enviar como prueba con SMTP, es porque algo tienes mal... si es que el SMTP es capaz de enviar por medio de un correo externo, es tu hosting el problema...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #15 (permalink)  
Antiguo 28/08/2013, 07:27
 
Fecha de Ingreso: agosto-2013
Ubicación: Talca
Mensajes: 40
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Me es imposible usar PHPMailer

Cita:
Iniciado por cesa_r Ver Mensaje
En principio cambia:

Código PHP:
mail->From $email;
$mail->FromName $nombre
por:
Código PHP:
$mail->SetFrom($email$nombre); 
como lo dejaste simpre pon el codigo completo.
Estimado cesar, finalmente el código quedo así, y lamentablemente sigue sin funcionarme, a pesar de que no me muestra ningún error:

Código PHP:
<?php
require_once('class.phpmailer.php');
require_once(
'class.smtp.php');
$asunto $_POST['asunto'];
$nombre $_POST['nombre'];
$email $_POST['mail'];
$telefono $_POST['telefono'];
$empresa $_POST['empresa'];
$descripcion $_POST['descripcion'];
$adjunto $_FILES['adjunto']['name'];
$adjuntotmp $_FILES['adjunto']['tmp_name'];

$mail = new PHPMailer();
$mail->Host "smtp.hotmail.com";
$mail->SMTPAuth true;
$mail->Username "[email protected]";
$mail->Password "mipass";
$mail->SetFrom($email$nombre); 
$mail->Subject $asunto;
$mail->AddAddress('[email protected]');
if (
adjunto != '') {
    
$mail->AddAttachment($adjuntotmp$adjunto);
}
$body '<strong>Nombre</strong>: ' $nombre '<br />';
$body .= '<strong>Mail</strong>: ' $email '<br />';
$body .= '<strong>Teléfono</strong>: ' $telefono '<br />';
$body .= '<strong>Empresa</strong>: ' $empresa '<br />';
$body .= '<strong>Descripción</strong>: ' $descripcion '<br />';
$mail->Body $body;
$mail->CharSet 'UTF-8';
$mail->IsHTML(true);
$mail->Send();

echo 
'<script type="text/javascript">alert("Su informacion ha sido enviada con exito !");location.href="/?home";</script>';
?>
  #16 (permalink)  
Antiguo 28/08/2013, 07:29
 
Fecha de Ingreso: agosto-2013
Ubicación: Talca
Mensajes: 40
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Me es imposible usar PHPMailer

Cita:
Iniciado por loncho_rojas Ver Mensaje
Esto no es tan complejo si se lo piensa, el envio de mails no tienen ningun secreto. Si no te funciona en el servidor, es porque o no tienes configurado correctamente el envío de correos, quizá es un hosting limitado...

Si no te funciona enviar como prueba con SMTP, es porque algo tienes mal... si es que el SMTP es capaz de enviar por medio de un correo externo, es tu hosting el problema...
Amigo si el problema es del proveedor de hosting, que les debo decir cuando me comunique con ellos?. Saludos !!.
  #17 (permalink)  
Antiguo 28/08/2013, 11:52
 
Fecha de Ingreso: agosto-2013
Ubicación: Talca
Mensajes: 40
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Me es imposible usar PHPMailer

Problema solucionado. Finalmente era error del proveedor de hosting.
Me comunique con la empresa proveedora y efectivamente me corroboraron que estaban con problemas.

Perdón por demorarme tanto en responder, ya que además como dijo un usuario arriba, usar la clase no es nada complejo y no tiene nada del otro mundo.

Última edición por Cristian23CL4PTP; 20/06/2014 a las 05:21

Etiquetas: mail, phpmailer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:39.