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

alojamiento wordpress

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.

Un saludo

¡¡¡Atención!!! Si tienes pensado contratar un hosting Del 21 al 28 de febrero hay descuento del 30% en Webempresa:

P.D: Podéis probar mis últimos juegos para móviles. Si ponéis una valoración en alguno me hacéis un favor 😉

ico_beheading_androidico_beheading_iosico_beheading_wpGalactic InsectsGalactic InsectsGalactic InsectsSnow SoccerSnow Soccer

alojamiento wordpress

Anuncios

16 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.0\r\n”;
        $headers .= “Content-type: text/html; charset=iso-8859-1\r\n”;
        //direccion del remitente
        $headers .= “From: Horacio Bogarin \r\n”;
        //Enviamos el mensaje a info@geekytheory.com
        $bool = mail($email,$titulo,$cuerpoMail,$headers);
        if($bool){
        //echo “Mensaje enviado”;
        }else{
        //echo “Mensaje no enviado”;
        }

  3. Hola de nuevo Horacio, Si quieres que en el from aparezca tu dirección de correo debes poner algo como esto:

    “From: Horacio Bogarin\r\n”;

    Incluyendo también la dirección de correo.

  4. 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

  5. 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…

  6. 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.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s