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:
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/revaliasesy 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
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 :