Como mandar un correo mediante Python

Enviar correo con Python y Gmail
Enviar correos mediante smtplib de python y una cuenta de gmail

En algunas ocasiones necesito enviar los resultados que me devuelve el arduino a mi teléfono para avisarme de alguna anomalía. Lo primero que se le viene a la cabeza a uno es hacer un programa para el móvil para recibir los datos, ahora que se ha puesto de moda hacer “app’s” para todo ( ya no son programas o aplicaciones ahora son “app’s”).

Pero yo no necesito un programa que me este ocupando espacio y memoria en el teléfono para recibir una alerta una vez al mes a lo sumo. Aprovechando que el “android” te pide una dirección de correo para poder acceder a “Google Play” y que además, esta en todo momento mirando el contenido de esa cuenta, lo mas fácil es que el arduino mande un correo a esa cuenta.  Por ello le he implementado una opción al programa que gestiona el arduino para que me mande el correo.

Para poder enviar un correo a través de Python, lenguaje con el que gestiono el arduino,  solo tenemos que hacer uso de la librería “smtplib”, esta librería nos proporciona todas la funciones necesarias para poder enviar el correo.

Lo primero que haremos el importar la función desde la librería.

Una vez que ya podemos utilizar la librería, creamos la variable que gestionara el envío.

Nos conectamos al servidor de correo saliente de gmail, smtp.gmail.com que esta a la escucha en el puerto 587, para utilizar cualquier otro servidor tendremos que cambiar el servidor y el puerto por el que este escuchando.

El servidor de gmail necesita que habilitemos el modo TTL, esto es uno de los métodos de enviar el correo de forma segura, el otro modo seria utilizar SSL.

Esto me ha dado problemas algunas veces, buscando por internet he visto que varia gente utiliza esta forma para activar el TTL.

Lo que hace la función “.ehlo()” es decirle a “EnviarCorreo” que se ponga en modo de enviar un correo. Es decir, ponemos la función en modo de enviar correo, le decimos que vamos ha enviar el correo utilizando TTL, y volvemos a indicarle que se vuelva poner modo de enviar un correo, esta vez, si para enviar el correo.

Antes de enviar el correo, nos identificamos en el servidor de la siguiente forma.

Ahora solo nos queda montar el correo que queremos enviar. Para ello tenemos que crear tanto la cabecera del mensaje, donde ira la dirección de quien lo envía, la dirección de quien lo recibe, el asunto del mensaje, y demás información que podemos incluir en la cabecera, y por ultimo crear el cuerpo del mensaje.

Esta seria una cabecera básica, al final del cuerpo incluimos dos saltos de linea, porque? no lo se aun.

Para crear el cuerpo solo tenemos que pasar el contenido del mensaje a una variable del tipo string.

Como en la cabecera, terminamos el cuerpo del mensaje con dos salto de linea, la explicación no la se todavía.

Y ya tenemos todo listo para enviar el correo.

Y con esto, y si todo esta bien, ya hemos enviado el correo. Ahora solo nos queda cerrar la comunicación con el servidor SMTP.

Y listo, ya hemos mando la alerta a nuestro teléfono móvil, y sin tener que instalar ninguna aplicación nueva y sin tener que hacer nada en el teléfono.

Que te ha parecido?

 

Crear usuario en Linux y asignarle un directorio

Crear usuario en Linux mediante consola
Como añadir usuarios a nuestro linux mediante la terminal.

Para crear usuarios en Linux se puede hacer de varios formas, con algún entrono gráfico, o a través de la linea de comandos. Con Ubuntu trae por defecto uno. Pero cuando se esta administrando un servidor lo normal es no tener la ayuda de ninguna de estos programas, para ello tendremos que tirar de comandos en la terminal.

Para añadir un usuario podemos utilizar el comando “useradd”, donde podemos indicar, si creamos automáticamente la carpeta personal del usuario, que grupo se le añadiría como principal y a que otros sera  agregado o que shell utilizara .

Explicación:

  • -m: Crear automáticamente la carpeta del usuario el la carpeta /Home/<NombreUsuario>
  • -g: grupo principal al que sera agregado
  • -G: Grupos secundarios al que pertenecerá.
  • -s: Shell que utilizara por defecto el usuario.
  • usuario: Nombre del usuario.

Despues de este comando queda asignar la contraseña, para ello utilizamos el comando “passwd”.

Luego nos pide que tecleemos la contraseña y que la repetimos para confirmar.

Con esto ya tendríamos creado nuestro usuario y asignada su contraseña.

Esta seria la opción estándar, pero ha mi me gusta hacerlo de la siguiente forma.

Creo el usuario

Le creamos la contraseña.

De momento nada especial, salvo que el usuario lo creo sin ningún parámetro.

Ahora creamos la carpeta del usuario donde a mi me da la gana. Por ejemplo.

Ponemos como propietario de esa carpeta al usuario que hemos creado.

Con el parámetro “-R” indicamos que le vamos asignar el propietario de esa carpeta al usuario indicado, y además a todos los subdirectorios y ficheros que contenga.

Le asignamos los atributos de “755”.

El parámetro “-R” hace lo mismo que en el comando anterior.

Y asignamos la carpeta al usuario como su carpeta personal

Con el parámetro “-d” indicamos que le vamos asignar su carpeta personal.

Ahora solo queda asignar a que grupos va ha pertenecer. Esto lo podemos hacer de dos maneras, mediante el comando “adduser”, o editando el fichero “/etc/group/”.

Si utilizamos el comando “adduser” lo podemos hacer de la siguiente manera:

Yo, si tengo que añadirle a varios grupos, prefiero editar el fichero “/etc/group”, y añadir al usuario a cada grupo. Para ello editamos el fichero.

No desplazamos hasta la linea del grupo que deseamos, y añadimos al usuario al final de la linea, si ya hay otro usuario, lo separamos por una coma sin espacios.

Para finalizar me aseguro que el shell sea el que quiero, en mi caso me gusta bash. Para ello lo hago o con el comando “usermod -s” o editando el fichero “/etc/passwd”.

Usando el comando “usermod -s”.

El parámetro “-s” le indicamos al comando que vamos a asignarle un nuevo shell.

Si nos decantamos por editar el fichero, lo abrimos, y nos desplazamos hasta el usuario deseado, al final aparecerá el shell que va a usar, si no es el que queremos lo cambiamos por el deseado.

Si no queremos que tenga ningún shell asignado podemos asignarle “/bin/false”.

Y con esto tendríamos  nuestro usuario creado y configurado. Si tenemos que gestionar muchos usuarios, y  a menudo se puede crear un script con todos los pasos.

Espero que sirva de ayuda, puedes dejar un comentario con tu opinión.