Como instalar y configurar un servidor de correo SMTP para enviar emails desde localhost con php. (Linux)

 

Hola a todos.

Si estas programando en tu entorno local “localhost” y quieres  mandar mails desde php necesitas tener instalado un servidor de correo  SMTP .

En entornos linux uno de los mas utilizado es  Postfix. Sin embargo si lo que queremos es simplemente poder enviar email desde nuestro entorno de puebas podemos optar por opciones mas livianas y simples.

Una opción ligera es instalar el paquete ssmtp.

En mi caso estoy trabajando desde un viejo portatil con lubuntu instalado, para otras distribuciones no derivadas de ubuntu el proceso de instalación puede ser diferente.

Para instalar el paquete  ssmtp abrimos un terminal y escribimos:

sudo apt-get install ssmtp

Ahora debemos editar el archivo ssmtp.conf:

sudo nano /etc/ssmtp/ssmtp.conf

Descomentamos o añadimos si no existen las siguientes lineas:

mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
AuthUser=<YOUR-EMAIL>@gmail.com
AuthPass=<YOUR-PASSWORD>

Debemos sustituir lo que se encuentra entre “<” y “>”  por nuestros valores.

En este caso vamos a utilizar nuestra cuenta de gmail para enviar el correo así que en AuthUser pondremos nuestra dirección de mail de gmail y enAuthPass la contraseña que utilizamos para acceder a nuestra cuenta de gmail.

Si lo dejamos así en el from del los mails delante de la dirección de correo desde donde se envía aparecerá “www-data”, para poder cambiar el from desde php tenemos que añadir tambien la siguiente linea en  ssmtp.conf:

FromLineOverride=YES

Ahora guardamos el archivo (Ctrl+O si lo editas con nano) y salimos (Ctrl+X).

Ahora tenemos que editar el archivo php.ini para asignar la variable sendmail_path:

sudo nano /etc/php5/apache2/php.ini

Buscamos la linea sendmail_path (Ctrl + W para buscar desde nano).

y la dejamos de la siguiente manera:

sendmail_path = /usr/sbin/ssmtp -t

Guardamos (Ctrl + O) y salimos (Ctrl + X).

Reiniciamos el servidor apache:

sudo /etc/init.d/apache2 restart

Y ya podemos enviar mails desde php utilizando la función mail() o wp_mail() si estais usando wordpress.

¿Necesitas un presupuesto para un desarrollo WordPress a medida?

¿Quieres un plugin a medida que realice una funcionalidad concreta que necesitas para tu WordPress?

Solicita un presupuesto sin compromiso:

Un saludo, y si aún no lo has hecho no olvides suscribirte a mi blog para no perderte los próximos posts  :-),

También puedes seguirme en Twitter en ‎@revigames y no olvides que me ayudas mucho si compartes este post en las redes sociales.

20 comentarios en “Como instalar y configurar un servidor de correo SMTP para enviar emails desde localhost con php. (Linux)

    1. Hola Alvaro.
      centOS utiliza paquetes rpm y ssmtp no se encuentra en los repositorios, por lo que primero tienes que instalar el repositorio con:
      rpm -Uvh http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

      y depues para instalar el paquete en lugar de apt-get se utiliza yum install ssmtp

      No lo he probado en centOS pero la diferencia básica son el tipo de paquete y repositorios que utiliza la la hora de instalarlo, el resto de configuraciones debería ser similar, pero te recomiendo que busques información de como instalar y configurar ssmtp en centOS.

      Gracias por tu comentario.

  1. Hola, una consulta y es posible también poder usar con un dominio propio x ejem en vez de gmail.com usar dominio.com

    Gracias de antemano, por tú rpta.

  2. Hola en la parte de
    :mailhub=smtp.gmail.com:587
    UseSTARTTLS=YES
    AuthUser=@gmail.com
    AuthPass=
    se puede colocar mas de un mail para enviar como Authusers , ya que tengo que realizarlo para varios usuarios.
    saludos.

    1. Hola Horacio:
      Solo se puede colocar una cuenta de correo , es la que se va a utilizar para enviar los correos lo que no quiere decir que sea la cuenta que tenga que aparecer como from a la hora de enviar. Desde php puedes indicar en las cabeceras del mail el from que quieres que aparezca.
      Para poder sobreescribir el from de las cabeceras desde php tienes que añadir la linea FromLineOverride=YES en el archivo ssmtp.conf tal y como indico el el post.

      1. Hola Mira te envio mi codigo que tengo en el controller de mi php.

        if($_SERVER[‘REQUEST_METHOD’] == “POST”){
        if (isset($_POST[‘envio_mail_value’]) && $_POST[‘envio_mail_value’] == 1) {

        //$email = $_POST[’email’]; // esta es la direccion a la que le mandas el correo
        $email = “bogarin1983@gmail.com”;
        $respuesta = $_POST[‘respuesta’];
        $dni = $_POST[‘dni’];

        $cuerpoMail =”DNI: “.$dni.”Respuesta a tu reclamo: “. $respuesta ;

        //Titulo
        $titulo = “Respuesta al reclamo”;
        //cabecera
        $headers = “MIME-Version: 1.0rn”;
        $headers .= “Content-type: text/html; charset=iso-8859-1rn”;
        //direccion del remitente
        $headers .= “From: Horacio Bogarin rn”;
        //Enviamos el mensaje a info@geekytheory.com
        $bool = mail($email,$titulo,$cuerpoMail,$headers);
        if($bool){
        //echo “Mensaje enviado”;
        }else{
        //echo “Mensaje no enviado”;
        }

  3. Buenos tardes llevo dias tratando de configurar el servidor para que me envie emails pero nada tengo esta confoguracion en mi ssmtp.conf

    #
    # Config file for sSMTP sendmail
    #
    # The person who gets all mail for userids < 1000
    # Make this empty to disable rewriting.
    root=postmaster

    # The place where the mail goes. The actual machine name is required no
    # MX records are consulted. Commonly mailhosts are named mail.domain.com
    mailhub=smtp.gmail.com:587
    UseSTARTTLS=YES
    AuthUser=+++++@gmail.com
    AuthPass=+++++++

    # Where will the mail seem to come from?
    #rewriteDomain=

    # The full hostname
    hostname=programador

    # Are users allowed to set their own From: address?
    # YES – Allow the user to specify their own From: address
    # NO – Use the system generated From: address
    FromLineOverride=YES
    #sendmail_path = /usr/sbin/ssmtp -t

  4. Hola Amigo,

    Hice todo lo del tutorial y funciono pero el detalle estuvo en que gmail me patio porque dijo que trate de acceder desde una aplicación no segura. que podría hacer…

  5. Buenas noches, Quisiera saber si es posible configurar una cuenta de dominio diferente, ya que he estado realizando pruebas con un dominio propio y hasta los momento no he podido configurarlo.

  6. Una duda, lo que quiero es montar mi servidor de correo smtp, no usar el servidor de gmail, como hago esto?

    es decir, quiero tener mi propio servidor smtp, smtp.midominio.net en vez de smtp.gmail.com, ya? según con mercury smtp se puede pero no lo he logrado

  7. ya me canse de las aplicaciones de linux, siempre les falta algo para el peso, la realidad es que este “sistema operativo” es para viejos decrepitos que cuentan con tiempo al pedo para estar probando si anda o no anda.
    Viva Windows, es la vida y la felicidad misma.
    Que hago ahora con mi tiempo libre?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.