Could not instantiate mail function PHP

En el post pasado comente sobre el uso de PHPMailer, pero resulta que cuando cambiamos de servidor o simplemente desde el inicio nos aparece el error de Could not instantiate mail function, y después de buscar les daré la solución y así dejen de especular a un que claro para que esto les funcione es necesario accedes a la consola del servidor ya que si tienen su pagina en algún hosting y aparece este error lamente decirles que esta solución no aplica.

 

El problema se debe a que no esta instalada esta librería, y por ellos no se puede instanciar y recordemos que phpMailer utiliza la función mail().

Como descubrí el problema: Al revisar los log de error de apache encontré lo siguiente:

LOG APACHE: sh: 1: /usr/bin/sendmail: not found

Por lo que nos da ya una idea mas clara del problema y la solución es la siguiente:

sudo apt-get install sendmail

y listo con esto nuestro problema a quedado resuelto.

Como anécdota, después de buscar en foros y de mas me daban soluciones que no me funcionaban y como en un servidor esto ya estaba funcionando ya tenia el código para enviar los diferentes tipos de emails, por lo que decidí entonces implementar el servicio SES de Amazon, al encontrar la solución (vaya una vez que quedo SES como a los diez minutos doy con la solución a bendita hora llego), a afortunadamente el código es muy flexible y se podía acoplar fácilmente a uno y a orto así que ya tenia dos soluciones una con PHPMailer y la otra con SES, pero como este ultimo es de pago, aun que no creo pasar del limite gratuito entonces decidí hacer una tercera solución con ambas la cual se resumen en lo siguiente.

Si falla phpMailer envíalo por SES.

Nota phpMailer esta configurado con servidor SMTP de GMAIL para enviar correos con autentificación.

Leave a Reply

Your email address will not be published. Required fields are marked *