Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Librería PHPMailer incompleta

Estas en el tema de Librería PHPMailer incompleta en el foro de PHP en Foros del Web. Buenos días. Mi archivo .php de envío de correo no funciona, no hace nada y comprobé que no ejecuta las líneas siguientes a la línea ...
  #1 (permalink)  
Antiguo 18/03/2018, 23:20
xav
 
Fecha de Ingreso: enero-2006
Ubicación: Argentina
Mensajes: 86
Antigüedad: 18 años, 1 mes
Puntos: 2
Librería PHPMailer incompleta

Buenos días.
Mi archivo .php de envío de correo no funciona, no hace nada y comprobé que no ejecuta las líneas siguientes a la línea

require 'PHPMailer/PHPMailerAutoload.php';

Resulta que la librería PHPMailer que descargo no contiene el archivo PHPMailerAutoload.php y en los videos que he visto este archivo sí forma parte de la librería.

Lo he descargado de github y de otro lado que ahora no recuerdo pero en ambos casos PHPMailerAutoload.php no está.

Alguien podría compartirme la librería con todos sus archivos o indicarme si estoy haciendo algo mal?
Les estaré muy agradecido.

Saludos cordiales,
Javier.
  #2 (permalink)  
Antiguo 19/03/2018, 00:02
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Librería PHPMailer incompleta

como y de donde descargas tu versión de PHPMailer?

prueba con esta
https://github.com/PHPMailer/PHPMailer
  #3 (permalink)  
Antiguo 19/03/2018, 09:03
xav
 
Fecha de Ingreso: enero-2006
Ubicación: Argentina
Mensajes: 86
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: Librería PHPMailer incompleta

Hola Arturo, gracias por responder.

Precisamente la he descargado de donde me indicas clickeando en el botón verde ("Clone or download") y luego en "Download ZIP".
Lo que obtengo es un .zip donde, aparte de los archivos de lenguaje, los únicos archivos .php son:

get_oauth_token.php
Exception.php
OAuth.php
PHPMailer.php
POP3.php
SMTP.php


Está bien o hay alguna otra forma de descargarlo que no veo?

Saludos.
Javier.
  #4 (permalink)  
Antiguo 19/03/2018, 10:34
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 8 meses
Puntos: 379
Respuesta: Librería PHPMailer incompleta

Esa libreria se instala mediante composer, viene en la documentación en la sección de Installation & loading

Código BASH:
Ver original
  1. composer require phpmailer/phpmailer

Si no tienes composer instalado lo puedes descargar de este lugar https://getcomposer.org/
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 19/03/2018, 21:04
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 1 mes
Puntos: 1146
Respuesta: Librería PHPMailer incompleta

@xav lee la documentación que se ofrece allí mismo. en esta no se hace mención de ningún archivo

require 'PHPMailer/PHPMailerAutoload.php';

Fijate bien como es el uso de esta librería, no importa donde viste el tutorial donde mencionan dicho archivo, la documentación oficial es la que importa.

@hhs esta librería no depende de composer, puede ser utilizada aun si no lo tienes instalado., allí mismo dice
Cita:
Alternatively, if you're not using Composer, copy the contents of the PHPMailer folder into one of the include_path directories specified in your PHP configuration and load each class file manually:
  #6 (permalink)  
Antiguo 20/03/2018, 14:11
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 6 meses
Puntos: 214
Respuesta: Librería PHPMailer incompleta

Saludo

La versión que usaba el PHPMailerAutoload.php
es bastante antigua, por eso es que tal vez
no la consigues tan fácil ahora.

Lo mejor es que descargues la versión actual
y la uses de acuerdo a los ejemplos que vienen
ya listos para revisarlos e implementarlos.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #7 (permalink)  
Antiguo 20/03/2018, 17:18
xav
 
Fecha de Ingreso: enero-2006
Ubicación: Argentina
Mensajes: 86
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: Librería PHPMailer incompleta

Herminio y Arturo, gracias por sus respuestas y perdón por demorarme en contestar.

Para evitar complicarme y perder mas tiempo del que perdí lo que hice fue descargar la versión de PHPMailer correspondiente a la fecha del video (2014) y allí me encontré con los archivos que necesitaba para el ejemplo.
La cuestión es que ahora estoy lidiando con un nuevo problema producido por las últimas líneas:

if(!$mail->send()) {
echo 'El mensaje no pudo ser enviado';
echo 'Mailer Error: ' . $mail->ErrorInfo;
}else{
echo 'El mensaje ha sido enviado exitosamente.';
};


ya que sin estas líneas el envío se realiza sin problemas.
No son esenciales para el envío pero sí para indicar al usuario si se pudo enviar o no.

Si alguien ve algo incorrecto le agradeceré me lo indique.

Saludos cordiales,
Javier.
  #8 (permalink)  
Antiguo 20/03/2018, 20:44
xav
 
Fecha de Ingreso: enero-2006
Ubicación: Argentina
Mensajes: 86
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: Librería PHPMailer incompleta

Hola mortiprogramador.

Tuve tantas demoras al editar mi última respuesta que no vi la tuya.
Por suerte pude conseguir la versión 5.2.9 sin problemas en https://github.com/PHPMailer/PHPMail...?after=v5.2.17.
De todas formas agradezco y valoro tu colaboración.

Saludos cordiales,
Javier.
  #9 (permalink)  
Antiguo 20/03/2018, 23:11
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 8 meses
Puntos: 379
Respuesta: Librería PHPMailer incompleta

Código PHP:
Ver original
  1. if(!$mail->send()) {
  2.   echo 'El mensaje no pudo ser enviado';
  3.   echo 'Mailer Error: ' . $mail->ErrorInfo;
  4. }else{
  5.   echo 'El mensaje ha sido enviado exitosamente.';
  6. };
Esto no funciona como esperas, revisa el método send() la condición nunca se evaluar a true, ya que el método send si no especificas que vas a usar excepciones regresa false si sucede algo inesperado.
Para que funcione cambia la condición
Código PHP:
Ver original
  1. if(false === $mail->send()) {
  2.   echo 'El mensaje no pudo ser enviado';
  3.   echo 'Mailer Error: ' . $mail->ErrorInfo;
  4. }
  5.  
  6. echo "Mensaje enviado";

O puedes usar excepciones

Código PHP:
Ver original
  1. $mail = new PHPMailer(true);
  2.  
  3. try {
  4.  
  5.    $mail->Host =$dmmodel->host;
  6.    //mas código
  7.  
  8. } catch (phpmailerException $e) {
  9. //manejas el error
  10. } catch (Exception $e) {
  11. //manejas el error
  12. }
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #10 (permalink)  
Antiguo 22/03/2018, 00:27
xav
 
Fecha de Ingreso: enero-2006
Ubicación: Argentina
Mensajes: 86
Antigüedad: 18 años, 1 mes
Puntos: 2
Respuesta: Librería PHPMailer incompleta

Impresionante Herminio! Muy interesante y completa tu respuesta.
Opté por implementar el cambio de condición y funcionó de maravilla.

Muchas gracias por ayudarme.

Saludos cordiales,
Javier.

Etiquetas: funcion, incompleta, 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 13:15.