Como enviar correos con adjuntos desde Linux desde linea de comandos


Es frecuente   en el manejo de maquinas Linux  usar muchos scripts en bash o c-shell para automatizar tareas  de una forma sencilla, dado  que al contrario de lo que muchas personas piensan,   shell script (o c-shell)  son  bastantes potentes  a la hora de manipular información .

Ante la cuestión de cómo enviar un correo electrónico desde linea de comandos  o desde un script , incluso  con archivos adjuntos desde una máquina Linux ,    lo primero   que pensamos es usar  la utilidad  mailx la cual mejora en muchos aspectos a la utilidad mail de viejos sistemas

La sintaxis básica para enviar correos electrónicos desde una máquina Linux mediante el comando mailx se muestra a continuación:

mailx -vvv -s   $asunto -r   $from  -S   $smtp     $destino

Como vemos , podemos   observar  varios parámetros en la  línea  anterior;

  • -vvv = Verbosity.
  • -s = especifica el asunto (subject).
  • -r = especificar el origen del Email.
  • -S = especifica el  smtp server.

Y lo ideal es usar variables:

  • $asunto: almacenamos el asunto ( subject ) del correo
  • $from : almacenamos el usuario que envía el correo
  • $smtp : almacenamos el servidor de correo
  • $destino : almacenamos  la dirección de correo destinatario  ( pueden poner sucesivas separando con espacios estas)

El comando anterior se puede complementar añadiendo   un cuerpo al contenido del correo  gracias al comando echo redirigiendo con el pipe (|)  hacia mailx

 echo  $cuerpo  | mailx -vvv -s   $asunto -r   $from  -S   $smtp     $destino

Dónde  $cuerpo  es  una variable que almacena el cuerpo del  email

person using macbook pro on brown wooden desk
Photo by rawpixel.com on Pexels.com

Es importante destacar que podemos obviar el servidor  stmp server si está configurado en la máquina así  como el origen del correo obvio , quedando su uso habitual tal como sigue:

 echo  $cuerpo  | mailx  -s   $asunto  -S     $destino1  $destino2  $destino3

Como se aprecia,   se  añade   un cuerpo al contenido del correo  gracias al comando echo redirigiendo con el pipe (|)  hacia mailx y se usan varias variables:

  • $cuerpo  es  una variable que almacena el cuerpo del  email
  • $asunto: almacenamos el asunto ( subject ) del correo
  • $smtp : almacenamos el servidor de correo
  • $destino1 : almacenamos  la dirección de correo destinatario
  • $destino2 : almacenamos  la dirección de correo destinatario
  • $destino3 : almacenamos  la dirección de correo destinatario

Anexando  adjuntos

Si   la versión de mailx que esta usando está por encima  de 12.x,e puede usar el nuevo interruptor adjunto (-a) en mailx para enviar archivos adjuntos con el correo ,  lo cual es una opción más simple  que el comando uuencode.

Como ejemplo mandar un fichero  a un destinatario, es muy sencillo usando el siguiente comando:

mailx -a $file  -s  $asunto  $destino1

En l comando anterior  se usan estas variables :

  • $asunto: almacenamos el asunto ( subject ) del correo
  • $destino1 : almacenamos  la dirección de correo destinatario
  • $file: ruta directa cal fichero a  anexar

El comando anterior imprimirá una nueva línea en blanco en el cuerpo del mensaje  aunque puede escribir el cuerpo del mensaje  presionar [ctrl] + [d] para enviar, lo cual  adjuntará el archivo al correo electrónico saliente correctamente con el Content-Type y encabezados  apropiados.

Para hacer esto más «scriptable», puede enviar el mensaje sin un cuerpo con el siguiente comando:

mailx -a $file  -s  $asunto  $destino1< /dev/null

Para enviar correos con un cuerpo de mensaje, reemplace / dev / null en el comando anterior con su archivo de cuerpo de mensaje.

mailx -a $file  -s  $asunto  $destino1<   $cuerpo

Donde $cuerpo  es  una variable que almacena el cuerpo del  email

En esta  versión de mailx, los encabezados que se usan en el correo electrónico saliente cambian de:

From:
Date:
To:
Subject:

A la forma siguiente:

From:
Date:
To:
Subject:
User-Agent:
MIME-Version:
Content-Type:
Content-Transfer-Encoding:

Si la versión de mailx está por debajo de 12.x, puede usarse el comando uuencode para enviar correos con archivos adjuntos.

El comando uuencode  se utiliza para codificar un archivo binario.De forma predeterminada, uuencode tiene entrada desde la entrada estándar y escribe en la salida estándar como se muestra a continuación ( esa es la razón por la que se repite el nombre del fichero) utilizando  por defecto el formato de codificación estándar de UU.

 uuencode  $fichero $fichero | mailx -s $asunto  $destino

Usando el formato anterior ,como se aprecia, se  añade   un cuerpo al contenido del correo  gracias al comando echo redirigiendo con el pipe (|)  hacia mailx  , de forma similar a añadir un cuerpo al  correo ,  pero esta vez estamos anexamos un fichero previamente codificado con uuencode

Las variables usadas:

  • $asunto: almacenamos el asunto ( subject ) del correo
  • $destino : almacenamos  la dirección de correo destinatario
  • $fichero : almacenamos  la ruta completa del fichero a adjuntar
  •  $fichero : almacenamos  la misma  ruta completa del fichero a adjuntar ( en efecto se repite y no es un error)

Por cierto, en caso de necesitar adjuntar varios ficheros, puede usar esta receta:

uuencode $fichero1 $fichero1  >/tmp/out.mail

uuencode $fichero2 $fichero2  >/tmp/out.mail

cat email-body.txt >>/tmp/out.mail

Y ahora ya si podemos  enviar el correo:

mailx -s $asunto  $destino </tmp/out.mail

high angle view of paper against white background
Photo by Pixabay on Pexels.com

Correos con anexos y cuerpo

La sintaxis  para enviar correos electrónicos desde una máquina Linux mediante el comando mailx  puede tener problemas a la hora de incluir  además de anexo un cuerpo  en el mensaje, por lo que podemos usar en su lugar el comando mutt usando la siguiente sintaxis:

echo $body | mutt -s $asunto -a $fichero  $destino1  $destino2 $destino3

Como vemos , podemos   observar  varios parámetros en la  línea  anterior;

  • -s = especifica el asunto (subject).
  • -a = especifica el nombre del fichero con la ruta completa

Y como en  los ejemplos anteriores , lo ideal es usar variables:

  • $asunto: almacenamos el asunto ( subject ) del correo
  • $destino1 : almacenamos  la dirección de correo destinatario
  • $destino2 : almacenamos  la dirección de correo destinatario
  • $destino3 : almacenamos  la dirección de correo destinatario
  • $body : almacenamos el cuerpo del correo

Android con Google Play para ordenadores


Hasta hace poco el proyecto de AndEx Oreo 8.1 basado en Linux – concretamente el kernel 4.9.54  (un clon del Android-x86,)  –  permitía instalar Android  sobre  un PC pero adolecia de un serio inconveniente pues no tenía soporte directo para Google Play de forma directa, pero eso ha cambiado  con la nueva version  180202 , eso si, habrá que pasar por caja pues la descarga del sw cuesta 9€ .

Esta nueva compilación de Android-x86_64 Oreo 8.1 trae  GAPPS pre-instalado,es decir, servicios Google Play Google Play Store, Google Play Juegos, Gmail y YouTube. También muchas otras aplicaciones como por ejemplo  Spotify, File Manager, Firefox, Root Explorer and Clash of Clans. Por tanto en AndEX Oreo c180202 casi todas las aplicaciones y juegos pueden ser instalados a través de Google Play Store y a través de Administrador de la aplicación Aptoide. !Incluso puede instalar juegos muy grandes (de 1GB o menos)!,
Si le gusta su teléfono Android y todas las aplicaciones que ha instalado en él es posible que también quiera ejecutar aplicaciones desde su ordenador portátil con pantalla más grande y mejor sonido,etc.

AndEX Oreo puede funcionar en vivo utilizando preferentemente grabador o Rufus para crear una memoria USB de arranque de la ISO del archivo andex_x86_64-oreo-8.1-gapps-windows-launchers-1060mb-180202.iso. O grabar el archivo ISO en un DVD y ejecutar el sistema desde él.

En caso de quer instalar de forma  permanentemente en su disco duro el nuevo  sistema no se puede instalar con un instalador como otros  S.O .   de  modo que debe ser ser instalado manualmente a la unidad de disco duro mediante una instalación FRUGAL utilizada por Puppy Linux, pero para poder hacer una instalación frugal usted debe tener al menos un sistema Linux instalado en su disco duro y debe también usar Grub como gestor de arranque.

 

 

 

 

 

INSTALACION

La Función de instalación del sistema no funciona,es decir, todo parece que va bien durante el proceso de instalación, pero el sistema no arranca desde disco duro, así que el sistema sólo puede ser instalado manualmente a disco duro,  razón por la cual  debe tener al menos un sistema Linux instalado en su disco duro y  debe también usar Grub como gestor de arranque.
El ordenador deberia ser bastante nuevo/moderno asi que no ejecute  en ordenadores más antiguos  Android-x86_64 Oreo ( para estos casos Android remaster KitKat 4.4.4 construcción 180108 funcionará también en ordenadores más antiguos).
Antes de comprar y descargar esta versión de AndEX Oreo debe ser consciente de que no todas las apps descargadas desde Google Play Store o Aptoide App Manager se pueden ejecutar en un sistema Android-x86_64. Algunos muy grandes (alrededor de 1GB) juegos por ejemplo no se ejecutarán. También debe ser consciente de que algunos juegos (muchos) tienen una pantalla táctil y la simulacion con el ratón no siempre funciona bien  ( pero juegos como Choque de clanes y Angry Birds funcionan muy bien).

Siga estos pasos para la instalación en sus disco duro:

  1. Utilizar preferentemente Rufus para crear una memoria USB de arranque del archivo ISO de andex_x86_64-oreo-8.1-gapps-windows-launchers-1060mb-180202.iso.
  2.  Ponga en marcha un sistema Linux (Ubuntu o…) en el equipo donde quiera tener instalado AndEX Oreo.
  3.  Crear una partición especial para AndEX Oreo o utilizar la partición donde ya tenga un sistema Linux instalado. Uno apenas arrancado o..crear una carpeta llamada ANDEX-OREO-180202 (o…) en la raíz (/) de la nueva partición (con el formato ext4) o en la raíz del sistema por ejemplo Ubuntu.
  4. Crear la carpeta /ANDEX-OREO-180202 /data. ¡Muy importante! Todos los cambios del sistema se guardarán en la carpeta data
  5. Ahora inserte su memoria USB con AndEX Oreo 8.1 y montarlo (si no monta automáticamente). Usted verá esto:
  6. Como se puede ver hay 10 archivos en la memoria USB. Transferencia (copia) om todos a la carpeta de ANDEX-OREO-180202. Cuando usted ha hecho la carpeta de ANDEX-OREO-180202 tendrá el siguiente aspecto.:
  7. Ahora tiene 11 archivos en la carpeta de ANDEX-OREO-180202 incluyendo la carpeta importantes datos. Como se puede se ha  supuesto que quiere hacer una instalación FRUGAL. Es decir, tiene AndEX Oreo en la misma partición que se está ejecutando desde. Ahora debe configurar Grub para arrancar AndEX Oreo
  8. Sobre Grub y «dual-boot/multi-boot».Si usted ya tiene uno o más sistemas Linux instalados en su disco duro (que usted debe tener para poder instalar AndEX Oreo construir 180103) se puede ver a continuación cómo usar Grub2 (que usa Ubuntu y la mayoría de los otros sistemas Linux como cargador de arranque). Debe añadir estas líneas a /boot/grub/grub.cfg o /etc/grub.d/40_custom – por ejemplo:

menuentry ‘AndEX 8.1 Oreo 180202 (sda8 FRUGAL)’ {
recordfail
load_video
insmod gzio
si [ x$ grub_platform = xxen]; a continuación, insmod xzio; insmod lzopio; fi
insmod part_gpt
ext2 insmod
si [x$ feature_platform_search_hint = xy]; entonces
búsqueda – no-disquete – fs-uuid – set = raíz 35527b5d-4652-4bcf-97b5-27ff3b1f267a
más
de búsqueda – no-disquete – fs-uuid – set = raíz 35527b5d-4652-4bcf-97b5-27ff3b1f267a
fi
linux / ANDEX-OREO-180202/kernel root = / dev/ram0 androidboot.selinux=permissive DPI = 160 UVESA_MODE = 1366 × 768 SRC = / ANDEX-OREO-180202
initrd /ANDEX-OREO-180202/initrd.img
}

Notas:

  • En algunos ordenadores pueden tener agregar nomodeset a la línea de arranque de linux. Así puede también deberás quitar DPI = 160 y UVESA_MODE = 1366 × 768 de la línea de arranque de linux. AndEX no arranca lo contrario o no tiene sonido.
  •  el DPI = 160 entrada proporciona una pista sobre la densidad de píxeles de la pantalla en puntos por pulgada. Este es un escenario importante, si la pantalla de Android los iconos y texto parece demasiado pequeño y concurrido, aumentar este número. Si las cosas parecen demasiado grandes, que sea más pequeño.
  • El UVESA_MODE = 1366 × 768 entrada describe el tamaño de pantalla. Esto también es un escenario importante. Si sabes dimensiones reales de la pantalla, entrar aquí. Pero no todas las dimensiones de trabajo: a veces sucede que una especificación de pantalla que es posible en principio no es factible en la práctica.



Cnfiguración de idioma

Por supuesto puede ejecutar AndEX en cualquiera lengua. Ir a ajustes y cambiar a tu idioma preferido. Los cambios tendrán efecto inmediato.

Conexiones Wireless
Wifi trabaja bien en AndEX Oreo. Ir a ajustes y encender el Wifi.

Apagado en el sistema

Sólo oprima suavemente el botón de encendido del ordenador y usted obtendrá dos alternativas.

 

Launchers

La nueva versión de AndEx Oreo 8.1 cuenta con tres launchers con aspecto de Windows 10 para hacer más cómodo el uso en un PC. Los nombres dejan claro su intención: Windows 10 Launcher, Microsoft Launcher y OO Launcher.  (Lanzador de OO es un mejor lanzador de estilo Android™ O Oreo™, con muchas características útiles lanzador mejorado).

Juegos preinstalados

Koi Video Live Wallpaper, Air Fighters, Popcorn Time, Wild Hunt, Racing In Car 2, Drift Clash y Fishing Club 3D – no pre-instalado.

 

 

 

 

 

Problemas conocidos
1. Puede ejecutar AndEX Oreo vivo en muchos  ordenadores, pero la función de instalación no funciona. Usted tendrá que hacer una instalación manual como se describió anteriormente.
2. No se puede instalar AndEX Oreo en VirtualBox y VMware. Puede ejecutar el sistema en vivo muy bien sin embargo.
3. Bluetooth no funciona, aunque puede activar Bluetooth y ver unidades .
4. No se puede usar Netflix. (Usted puede instalar la app de Netflix, pero no funcionará).
5. Puede utilizar la aplicación YouTube, pero lo mejor  es mejor es ver lso videos de  YouTube en Firefox o Google Chrome.

 

 

Mas informacion  aqui