SSMTP ubuntu 16.04 php7 nginx




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:
Terminal:
sudo apt-get install ssmtp
Ahora debemos editar el archivo ssmtp.conf:
Terminal:
sudo nano /etc/ssmtp/ssmtp.conf

Descomentamos o añadimos si no existen las siguientes lineas:
Terminal:
root=cirelramos

hostname=gmail.com

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:
Terminal:
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:
Terminal:
nano /etc/php/7.0/fpm/php.ini

Buscamos la linea sendmail_path (Ctrl + W para buscar desde nano).
y la dejamos de la siguiente manera:
Terminal:
sendmail_path = /usr/sbin/ssmtp -t


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




Reiniciamos el servidor nginx:


Terminal:
service nginx reload
editamos el alias por:

postmaster:  tudirecciondecorreo


Terminal:
sudo nano /etc/aliases


Terminal:
nano /etc/hosts

cambias el valor a el dominio que usas, en mi caso es cirelramos.com.ve

y en

Terminal:
nano /etc/hostname

Terminal:
nano /etc/hostname

y añadir las configuraciones para los distintos tipos de correos que se enviaran, esto se realiza cuando se utiliza un dominio particular como correo y no el clasico gmail que ya tiene una opcion para reescribir el FROM del correo


Terminal:
nano /etc/ssmtp/revaliases
 y al final agregamos un configuracion similar

Terminal:
root:admin@cirelramos.com.ve:smtp.provedoparticular.com:587
server:admin@cirelramos.com.ve:smtp.provedoparticular.com:587
netdata:admin@cirelramos.com.ve:smtp.provedoparticular.com:587

esto se especifica por ejemplo para el root, el admin y el netdata que utilizan el smtp para enviar informacion


Terminal:
tail -n 200 /var/log/syslog | grep "sSMTP"

para comprobar si hay algun error de ejecucion



si quieres usar ssmtp desde el terminal puede usar este comando

Terminal:
echo "Correo de prueba" | sudo mail -s "Test4" correodeprueba@gmail.com

Terminal:
/usr/sbin/ssmtp micorreo@gmail.com < /home/a/a.txt


o de esta forma


Terminal:
{
       echo "From: Dolar Paralelo <envia@gmail.com>"
       echo "Sender: envia@gmail.com"
       echo "To: captura@gmail.com"
       echo "Subject: Precio del Dolar Negro"  
       echo
       echo "Precio de DolarToday"
       echo "Precio DolarToday = PrecioDolar"
       echo "Reservas"
       echo "liquidez"
   } | /usr/sbin/ssmtp emailRecipiente@gmail.com



si quieres probar con php si funciona el ssmtp

<?php 
    ini_set( 'display_errors', 1 );
    error_reporting( E_ALL );
    $from = "cirelramos.sytes";
    $to = "cirelramos@gmail.com";
    $subject = "PHP Mail Test script";
    $message = "This is a test to check the PHP Mail functionality";
    $headers = "From:" . $from;
    mail($to,$subject,$message, $headers);
    echo "Test email sent";
?>


0 comentarios :