===== Configuración de Mutt con Gmail + GPG (optativo) fácil + Teclas útiles de Mutt===== **Manual de Mutt recomendado**: {{:mutt.pdf|}}\\ **Software**: [[http://www.mutt.org/|Mutt]], [[https://www.gnupg.org/|Gnupg]] (optativo) y [[http://w3m.sourceforge.net/|w3m]] (optativo pero recomendable).\\ **Atajos de teclado**: [[http://www.busindre.com/_media/mutt_keys.tx| Mutt Keys]]\\ **Aclaración**: GNU Privacy Guard = GnuPG = GPG. **Manual GPG en español**: [[http://www.dewinter.com/gnupg_howto/spanish/index.html]] **Funcionalidades**. * Poder administrar Gmail desde la terminal de forma completamente funcional.\\ * Cifrar / Firmar correos electrónicos sin complicaciones.\\ * Autocompletado de direcciones de correo con el tabulador.\\ * Visualización del html de forma amigable (w3m).\\ * Visualizar las carpetas / etiquetas de Gmail (Enviados, Borradores, Papelera, SPAM, etc.)\\ * Uso de colores para identificar tipos de correos.\\ * Posibilidad de enviar correos las carpetas / etiquetas: SPAM, etiquetarlos como Destacados, etc...\\ * Credenciales de IMAP cifradas en los ficheros de configuración ([[proteger_passwords_en_la_configuracion_de_mutt|leer]]). * Mil cosas más. NOTA: Se debe activar IMAP en Gmail (Configuración) y configurar las carpetas que se pueden acceder desde el protocolo IMAP. Si se va a utilizar Mutt en un entorno sin escritorio (SSH) con GPG, este debe tener la siguiente configuración para poder hacer uso de pinentry-curse y no pinentry-gtk-2. Esa aplicación pertenece a Gnugp y pedirá la clave para almacenarla en memoria un periodo de tiempo y que no moleste cada poco tiempo solicitando la clave. En entornos con escritorio se arrancará la aplicación gtk-2. Fichero /etc/bash.bashrc o ~/.bashrc export GPG_TTY=$(tty) Enlace simbólico (/usr/bin/pinentry-curses). unlink /usr/bin/pinentry ln -s /usr/bin/pinentry-curses /usr/bin/pinentry Fichero ~/.gnupg/gpg-agent.conf # Keyboard control. no-grab # PIN entry program. pinentry-program /usr/bin/pinentry-curses El demonio pgp-agent se arranca de forma predeterminada al usar el primer comando gpg o aplicación que lo requiera. Si el fichero de configuración gpg-agent.conf no parece tener ningún efecto, otra posibilidad para forzar el uso de pinentry-curses es arrancar el demonio gpg-agent con las siguientes opciones. gpg-agent --homedir /home/busi/.gnupg --use-standard-socket --pinentry-program /usr/bin/pinentry-curses --daemon **Ficheros y su ubicación**: * ~/.muttrc Fichero de configuración general. * ~/.muttrc_gpg Fichero con las opciones de GPG. * ~/.mutt/aliases.sh Script que recoge direcciones de correos que se leen (genera lista de contactos). * ~/.mutt/mailcap Indicará a Mutt que los correos con html los abra un navegador (w3m). **Adaptar los ficheros de configuración**: Completar donde pone XXXX en los ficheros de configuración (Usuarios, claves y llavero GPG). El script //~/.mutt/aliases.sh// debe tener permisos de ejecución. Se recomienda utilizar una terminal UTF-8 y sistemas con locales UTF-8 ([[https://www.busindre.com/modificar_locales_del_sistema_es_es.utf8|Leer]]) NOTA: Si no se va a utilizar GPG, el fichero .muttrc_gpg no es necesario crearlo. ==== Teclas fundamentales de Mutt ==== **Documentación completa**: [[http://www.mutt.org/doc/manual/]] **Mutt cheat sheets**: [[http://sheet.shiar.nl/mutt]] / [[http://www.busindre.com/_media/mutt_keys.tx| mutt keys]]\\ **Moverse por el framework**. * Entra en el correo / avanza una linea hacia abajo * Avanza una linea hacia arriba. * Muestra la siguiente página o el siguiente mensaje si ya estamos en el finalmente). * - Paginación hacia arriba al leer un correo. * l Permite filrar los correos que contengan un determinado texto. Con "all" se desactiva el filtro. * / Permite realizar búsquedas (Expresiones regulares soportadas). * / ~b XX Buscar dentro del cuerpo de los correos. Por rango de fechas "~d 2015/01/01-2016/09/11" ( [[https://kapeli.com/cheat_sheets/Mutt.docset/Contents/Resources/Documents/index|Más información]]). * / ~B XX Buscar en todos sitios (cabeceras, cuerpo, asuntos, etc). * / ~g Busca mensajes con firma digital. * / ~G Busca mensajes cifrados. * ! Ejecuta un comando. Ejecutar bash para apartar Mutt momentáneamente sin cerrarlo y regresar con "exit". * n Permite realizar búsquedas / seguir buscando con el mismo patrón de búsqueda anterior. * S Salta la parte de texto citado. * T Esconde / Visualiza la parte citada. * ? Muestra las combinaciones de teclas. * ^ Se dirige a la parte superior del mensaje (Pulsar dos veces). * o Permite ordenar por campos: date/form/recv/subj/to/thread/unsort/size/score/spam * Ctrl+g Cancela la acción que se esté realizando / limpia el prompt. @ Muestra la dirección del emisor (From:) usada en el correo. **Acciones** * s Mover un correo a una carpeta imap (también llamadas etiqueta), si no existe la crea. * v Visualiza los adjuntos y el email en forma de fichero para descargarse (s) o abrirlo (macros). El email no contiene cabeceras ni asunto, solo el cuerpo del mensaje. * c Cambiar de directorio (Enviados, Papelera, SPAM, etc). Muy útil para reconectar cuando se insertó erróneamente las credenciales IMAP sin necesidad de volver a arrancar Mutt. Si se usan múltiples cuentas en Mutt es recomendable usar un macro especial (mirar configuración propuesta) para que funcione con más de una cuenta. * $ Sincronización con el servidor IMAP de Gmail (leídos, eliminados,...). (Mutt -> IMAP) * G Refresca la bandeja de entrada del servidor IMAP de Gmail. (IMAP -> Mutt) * m Crear un nuevo correo electrónico. * r Responder al mensaje actual. * g Responder a todos en un grupo. * d Borrar mensaje actual. (No irá a la papelera de Gmail!) * D Borrar adjunto. * d Cambiar el nombre del fichero adjunto que será recibido. * u Recuperar mensaje borrado (Simplemente escribiendo el número se puede seleccionar al correo deseado). * e Edita un correo en bruto (Útil para ver las cabeceras). * N Marcar mensaje como no leído. * q Salir de Mutt o del visualizador de mensajes. * h Muestra las cabeceras (muestra el correo original). * w Permite insertar una flag (Borrado, destacado, leído, etc). * W Elimina una flag del mail (Borrado, destacado, leído, etc). * t Marca correos para luego realizar alguna acción, como por ejemplo rebotarlos todos a otra dirección de correo mediante la tecla "b" (Leer los riesgos de rebotar más abajo). NOTA: Al eliminar un correo (tecla d), este correo no irá a la carpeta / etiqueta "Papelera" de Gmail, para ello se debe crear un marco para otra tecla o bien utilizar la tecla "s" y guardarlo en la carpeta "Papelera". **Modo de solo lectura**. * % Permite activar / desactivar el modo de solo lectura. **Reenvío de correos con Mutt**. * f Reenvía un correo (Sin adjuntos). * Pulsar v para mostrar adjuntos, marcarlos con "t" y luego pulsar la "f" para reenviar solo algunos adjuntos. * b Rebota (Reenvía) un correo pero no permite editar el cuerpo ni lo marca como reenviado, solo pregunta por el nuevo destinatario y lo manda. Al ser una copia idéntica los adjuntos están siempre incluidos. * Esc + e Reenvía un correo con todos los adjuntos. Se debe editar el "From" (Esc + f) y el "To:" (t). CUIDADO !!: La opción de rebotar no edita el emisor (from:), por lo tanto los correos suelen ser calificados como SPAM o simplemente descartados, dependerá del servicio que los reciba. Al querer reenviar correo con cuerpos de mensaje en formato "multipa/alternativ", usado para enviar el cuerpo del mensaje en formatos de texto y html, lo mejor es seleccionar uno de los dos y reenviarlo. La combinaciones de teclas sería "v" para mostrar los ficheros adjuntos (el cuerpo es un fichero adjunto también), marcar los adjuntos que se quieran con la tecla "t" evitando el del tipo multipa. Por último se pulsa "f" para reenviarlos. Si se reenvían correos que tienen el cuerpo del mensaje en formato "multipa/alternativ" es muy posible que el cuerpo del mensaje no se envíe ya que mutt no edita las cabeceras y las adapta para este tipo de cuerpos de mensaje (rfc1341: https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html). Otra opción sería reenviar el correo usando "Esc+e" y posteriormente editar el tipo de fichero adjunto mediante "Cntrl+t" para indicar que es un fichero de texto. De esta manera se enviaría el cuerpo en bruto (delimitadores multipa y los textos en formato html y texto plano). Ejemplo de como se debe adaptar el tipo MIME: Content-Type: multipart/alternative; boundary="_----------=_1551732836237023" Content-Type: text/plain **Teclas una vez se muestra la pantalla con el resumen del correo a enviar.** * A: Permite adjuntar cuerpo de otros correos, se deben seleccionar con la tecla "t". * t: Permite editar el destinatario (To:). * p: Cuando tengamos escrito un correo, la letra p ofrece cifrar, firmar y ambos juntos. * ESC + k: Adjunta una clave pública para enviarla a un contacto. * Esc + f: Edita la dirección del emisor ("From:") * Cntrl + Y: Cifra / Descifra el cuerpo del correo (no usa MIME/GPG). * Cntrl + V: Verifica / Firma el cuerpo del correo (no usa MIME/GPG). * Cntrl + K: Extrae y guarda (importa) llaves de contactos que las hayan enviado como adjunto en correos. **Descripción de Flags**. * D Marcado para el borrado (Al salir, actualizar o cambiar de carpeta se borra). * d Contiene adjuntos marcados para eliminar. * K Contiene una clave pública. * N Nuevo correo. * O Mensaje viejo. * P El correo está cifrado (PGP). * r El correo ha sido respondido. * S Mensaje firmado y la firma ha sido verificada exitosamente. * s Mensaje firmado. * ! Mensaje Marcado (Importante). * * Mensaje Etiquetado. * n Hilo que contiene nuevo mensaje (Se muestra si está el hilo muy saturado). * o Hilo que contiene viejos mensajes (Se muestra si está el hilo muy saturado). * + El correo estaba únicamente destinado a ti. * T El correo estaba destinado a ti y además otros CC. * C El mensaje es para ti pero estando tu dirección dentro del campo CC. * F El mensaje procede de ti. * L Mensaje enviado a una lista de correo. ** Solución: La tecla no funciona en Mutt **. Depende de como interprete la terminal en uso la tecla de retroceso (backspace) puede que Mutt no la vincule a la acción de subir a "linea anterior" al leer correos. Un mensaje como el siguiente puede ser mostrado. Tecla sin enlace. Presione '?' para obtener ayuda. Si la combinación "Cntrl + h" funciona adecuadamente en Mutt, lo más probable es que el backspace devuelva "^?", se puede probar pulsando "cntrl + v" y posteriormente la tecla retroceso. ([[http://mutt-users.mutt.narkive.com/M117hOwP/backspace-problems-in-xterm|Link 1]] / [[http://www.ibb.net/~anne/keyboard.html|Link2]]). La solución sería configurar en el archivo .muttr el bind previous-line con ^?. bind pager ^? previous-line NOTA: Recordemos que "^?" no son dos caracteres, se debe generar usando "Cntrl + v" a la hora de editar .muttrc, no copiando y pegando desde la web. **Autocompletado**. Usar el tabulador, es funcional en varias zonas de Mutt (Adjuntar, escribir direcciones, etc). **Arrancar navegador al pulsar una URL en consola**. Lo más simple es usar las opción de la propia consola sobre la que estamos utilizando Mutt. Por ejemplo en lxterminal, vale con pulsar el enlace con la tecla //Cntrl// pulsada y nos arrancará el navegador predeterminado. **Colores** (Según nuestra configuración). - Verde: Enviado por nosotros. - Rojo negrita: Fichero de tamaño superior a la media. - Amarillo: Correos ya leídos. - Blanco: El correo estaba destinado a más personas. - Fondo blanco: Correos sin leer. - Fondo Rojo: Destacados (Estrella de Gmail). ==== Ficheros de configuración ==== Fichero $HOME/.muttrc # Juego de caracteres de los mensajes que enviamos: set send_charset = "utf-8" set assumed_charset = "iso-8859-1" # Editor. Si no se declara se usa $EDITOR. set editor = "vim -c 'set syntax=mail ft=mail enc=utf-8'" set menu_scroll = "yes" # Remitente de los mails: set from = "XXXX@gmail.com" set realname = "XXXX" # Configuraciones servidor IMAP: set imap_user = "XXXX@gmail.com" set smtp_url = "smtp://XXXXX@gmail.com@smtp.gmail.com:587/" # Opcional (no lo recomiendo porque queda almacenada la contraseña en texto plano): set imap_pass = "XXXXXXXX" set smtp_pass = "XXXXXXXX" # En caso de no introducir los dos valores anteriores, se nos pedirá ingresar la contraseña al enviar o recibir mails. set folder = "imaps://XXXX@gmail.com@imap.gmail.com:993" # Coonfiguramos el Inbox set spoolfile = "+INBOX" # Configuramos la carpeta de borradores (Debe llamarse igual que en el webmail): set postponed = "+[Gmail]/Borradores" # Guardamos los mails en Enviados: set record ="+[Gmail]/Enviados" # Ajustes para la conexión IMAP: set mail_check=60 set imap_keepalive=300 # Buzones extra que queremos comprobar (si tenemos carpetas extra en Gmail): #mailboxes "+[Gmail]/Spam" #mailboxes "+[Gmail]/Papelera" #### Refrescar con la G bind index G imap-fetch-mail # Muy útil cuando estamos suscritos a una lista de correos, nos ordena los mensajes por threads: set sort=threads set strict_threads=yes set sort_aux=reverse-last-date-received set sort_re # Crear los directorios para no obtener errores, # 'mkdir -p ~/.mutt/cache/{bodies,headers}': set message_cachedir = "~/.mutt/cache/bodies" set header_cache = "~/.mutt/cache/headers" # El siguiente archivo debe existir y contiene la firma, que va al pie de cada mail que escribamos, naturalmente: set signature = ".mutt/.firma" set pager_format = " %C - %[%H:%M] %.20v, %s%* %?H? [%H] ?" set index_format="%3C %4Z %4[!%d.%m %H:%M] %-40.40F (%5c) %s" #set pager_format="%S %C/%T?%n: %-50.50n %s" # No mostrar todos los campos de la cabecera del mensaje, solo algunos: ignore * unignore From To Cc Bcc Date Subject # y en este orden: unhdr_order * hdr_order From: To: Cc: Bcc: Date: Subject: ##################################################### Color settings for mutt. # Default color definitions color normal white default color hdrdefault green default color quoted green default color quoted1 yellow default color quoted2 red default color signature cyan default color indicator brightyellow red color error brightred default color status brightwhite blue color tree brightmagenta default color tilde blue default color attachment brightyellow default color markers brightred default color message white default color search brightwhite magenta color bold brightyellow default # Color definitions when on a mono screen mono bold bold mono underline underline mono indicator reverse mono error bold # Colors for items in the reader color header brightyellow default "^(From|Subject):" color header brightcyan default ^To: color header brightcyan default ^Cc: mono header bold "^(From|Subject):" # Many of these formulas were stolen from Jeremy Blosser # These would be much simpler if colors were additive. # regular new messages color index black white "~N !~T !~F !~p !~P" # regular tagged messages color index black cyan "~T !~F !~p !~P" # regular flagged messages color index black red "~F !~p !~P" # messages to me color index yellow default "~p !~N !~T !~F !~P" color index brightyellow white "~p ~N !~T !~F !~P" color index yellow cyan "~p ~T !~F !~P" color index yellow red "~p ~F !~P" # messages from me color index green default "~P !~N !~T !~F" color index green white "~P ~N !~T !~F" color index green cyan "~P ~T !~F" color index green red "~P ~F" # big messages color index brightred default "!~N ~z 102400-" color index brightred cyan "~T !~F !~p !~P ~z 102400-" color index brightred white "~N ~z 102400-" # deleted messages color index red default "!~N ~D" color index red white "~N ~D" # Highlights inside the body of a message. # Attribution lines color body magenta default "\\* [^<]+ <[^>]+> \\[[^]]+\\]:" color body magenta default "(^|[^[:alnum:]])on [a-z0-9 ,]+( at [a-z0-9:,. +-]+)? wrote:" # URLs color body brightyellow default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" # email addresses color body brightmagenta default "((@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]),)*@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\.[0-9]?[0-9]?[0-9]\\]):)?[0-9a-z_.+%$-]+@(([0-9a-z-]+\\.)*[0-9a-z-]+\\.?|#[0-9]+|\\[[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\.[0-2]?[0-9]?[0-9]\\])" # PGP messages color body brightyellow default "^gpg: Good signature .*" color body white default "^gpg: " color body brightwhite red "^gpg: BAD signature from.*" mono body bold "^gpg: Good signature" mono body bold "^gpg: BAD signature from.*" # Various smilies and the like color body brightwhite default "<[Gg]>" # color body brightwhite default "<[Bb][Gg]>" # color body brightwhite default " [;:]-*[})>{(<|]" # :-) etc... # *bold* color body brightblue default "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" mono body bold "(^|[[:space:][:punct:]])\\*[^*]+\\*([[:space:][:punct:]]|$)" # _underline_ color body brightblue default "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" mono body underline "(^|[[:space:][:punct:]])_[^_]+_([[:space:][:punct:]]|$)" # /italic/ (Sometimes gets directory names) #color body brightblue default "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" #mono body underline "(^|[[:space:][:punct:]])/[^/]+/([[:space:][:punct:]]|$)" # Border lines. color body blue default "( *[-+=#*~_]){6,}" ######### source ~/.muttrc_gpg ######### macro index \Cs " =[Gmail]/Enviados" "go to Sent Items" ######## Los ficheros no leídos nuevos no los marque como Old al salir de mutt. set mark_old=no ######## Alias set alias_file = "~/.mutt/aliases.txt" set sort_alias = alias set reverse_alias = yes source $alias_file set display_filter = '$HOME/.mutt/aliases.sh' ######## w3c set mailcap_path = ~/.mutt/mailcap auto_view text/html # Si hay versión en modo texto del correo (Depende del emisor) es mejor evitar que mutt lo renderice como HTML, para eso se debe usar la siguiente opción. alternative_order text/plain text/html NOTA: Cuando un correo tiene mucho contenido html y no puede ser bien representado en la terminal, siempre se puede pulsar la tecla "x" y que nuestro gestor de archivos se encargará del resto. Por norma abrirá el navegador con el contenido del correo. # Verificar por defecto las firmas de todos los mensajes recibidos. set pgp_verify_sig ## Uso de GPG en el mismo cuerpo y no como adjunto MIME # Esto puede ser necesario si nuestro destinatario no soporta PGP/MIME # ATENCION: si se aplica sobre adjunto _ES MODIFICADO_ (firmado o # cifrado) # CTRL+V para firmar en el mismo cuerpo sin usar adjuntos PGP/MIME el # "s" es para que no pregunte si desea sobreescribir # /tmp/mutt-host-XXXX-Y macro compose \CV "Fgpg --clearsign\ns" # CTRL+V para verificar la firma sin usar adjuntos PGP/MIME macro pager \CV "|gpg --verify\n" # CTRL+Y para cifrar en el mismo cuerpo sin usar adjuntos PGP/MIME el # "s" es para que no pregunte si desea sobreescribir # /tmp/mutt-host-XXXX-Y macro compose \CY "Fgpg -ea\ns" # CTRL+Y para descifrar del mismo cuerpo sin usar adjuntos PGP/MIME se # sale del visor less con una "q" de quit... macro pager \CY "|gpg --decrypt|less\n" # Macro para que al usar múltiples cuentas se puedan abrir directorios sin problemas (Tecla c), macro index 'c' '?^K=' ########## # decode application/pgp set pgp_decode_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f" # verify a pgp/mime signature set pgp_verify_command="gpg --status-fd=2 --no-verbose --quiet --batch --output - --verify %s %f" # decrypt a pgp/mime attachment set pgp_decrypt_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f" # create a pgp/mime signed attachment # set pgp_sign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f" set pgp_sign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f" # create a application/pgp signed (old-style) message # set pgp_clearsign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f" set pgp_clearsign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f" # create a pgp/mime encrypted attachment # set pgp_encrypt_only_command="pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" # create a pgp/mime encrypted and signed attachment # set pgp_encrypt_sign_command="pgpewrap gpg-2comp %?p?--passphrase-fd 0? -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" set pgp_encrypt_sign_command="pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" # import a key into the public key ring set pgp_import_command="gpg --no-verbose --import %f" # export a key from the public key ring set pgp_export_command="gpg --no-verbose --export --armor %r" # verify a key set pgp_verify_key_command="gpg --verbose --batch --fingerprint --check-sigs %r" # read in the public key ring set pgp_list_pubring_command="gpg --no-verbose --batch --quiet --with-colons --list-keys %r" # read in the secret key ring set pgp_list_secring_command="gpg --no-verbose --batch --quiet --with-colons --list-secret-keys %r" # fetch keys # set pgp_getkeys_command="pkspxycwrap %r" # pattern for good signature - may need to be adapted to locale! # set pgp_good_sign="^gpgv?: Good signature from " # OK, here's a version which uses gnupg's message catalog: set pgp_good_sign="`gettext -d gnupg -s 'Good signature from "' | tr -d '"'`" # This version uses --status-fd messages set pgp_good_sign="^\\[GNUPG:\\] GOODSIG" ########### set pgp_autosign=no set pgp_sign_as=XXXXXX set pgp_replyencrypt=yes set pgp_timeout=3600 # Verificar por defecto las firmas de todos los mensajes recibidos. set pgp_verify_sig **Dentro del directorio $HOME/.mutt** #!/bin/bash # # From http://wcm1.web.rice.edu/mutt-tips.html MESSAGE=$(cat) #NEWALIAS=$(echo "${MESSAGE}" | grep -m 1 ^"From: " | sed s/[\,\"\']//g | awk '{$1=""; if (NF == 3) {print "alias" $0;} else if (NF == 2) {print "alias" $0 $0;} else if (NF > 3) {print "alias", tolower($(NF-1))"-"tolower($2) $0;}}') make_new_alias() { echo "${MESSAGE}" | grep -m 1 ^"From: " | sed s/[\,\"\']//g | awk '{$1=""; if (NF == 3) {print "alias" $0;} else if (NF == 2) {print "alias" $0 $0;} else if (NF > 3) {print "alias", tolower($(NF-1))"-"tolower($2) $0;}}' } NEWALIAS=$(make_new_alias) if grep -q 'notification\|noreply\|no-reply\|\(^bugs@\)' <(echo "$NEWALIAS"); then # This is an automated message. : else if grep -Fxq "$NEWALIAS" $HOME/.mutt/aliases.txt; then # This alias already exists. : else # Create the new alias. echo "$NEWALIAS" >> $HOME/.mutt/aliases.txt fi fi echo "${MESSAGE}" text/html; w3m -I %{charset} -T text/html; copiousoutput; **Descargar ficheros adjuntos con Mutt** * Visualizamos los ficheros adjuntos con la tecla "v" * con la tecla "s" guardamos el fichero en el disco. **Visualización de nombres de adjuntos** Si la visualización de ficheros adjuntos tienen problemas de codificación, muy posible sea por el uso de clientes como outlook que siguen usando codificaciones no recomendadas. =?UTF-8?B?MS0... =?iso-8859-1?... Ejemplo: # Codificación erronea. A 6 =?UTF-8?Q?AB=5FL=C3=B6sung_Wissenswertes [applica/pdf, base64, 202K] # Así debería de verse. A 6 AB_Lösung Wissenswertes.pdf [applica/pdf, base64, 202K] la solución es ejecutar el siguiente comando en mutt y volver a listar los adjuntos (tecla v) :set rfc2047_parameters **Abrir ficheros adjuntos con Mutt sin descargarlos** Es posible jugar con los fichero mailcap o bien usar un macro para abrir ficheros. Un truco muy socorrido, es usar el gestor de ficheros de la distribución en uso para abrir archivos, ya que este suele tener mapeadas las aplicaciones. Por ejemplo para escritorios LXDE se podría usar pcmanfm en un macro de la siguiente manera (Tecla "x"). En otros escritorio como xfce sería "thunar" el encargado de abrir los ficheros. ## Macro Open files (pcmanfm). macro attach x \ "\ unset wait_key\ rm -f /tmp/mutt-attach\ /tmp/mutt-attach\ pcmanfm /tmp/mutt-attach &^A\ " Con este macro, al pulsar la tecla "x" sobre un un adjunto (tecla "v" para listarlos) guardará el fichero en /tmp/ y lo abrirá con pcmanfm. **Abrir un fichero mbox con Mutt**. mutt -f fichero.mbox **Descargar todos los adjuntos a partir de un fichero mbox**: [[extraer_adjuntos_de_ficheros_mbox]] **Enlaces de interés**. * [[http://www.sromero.org/ext/articulos/sololnx/sololnx6.html]] * [[http://rhonda.deb.at/config/mutt/keys]] * [[https://gist.github.com/kaleb/1289741]] * [[http://aperiodic.net/phil/configs/mutt/colors]] (Colores)