¿Es posible enviar archivos adjuntos por correo electrónico desde la línea de comandos?
Si es posible, me gustaría algo tan simple como:
mail -a myfile.txt -t me@example.com -s "Here's my file"
¿Es posible enviar archivos adjuntos por correo electrónico desde la línea de comandos?
Si es posible, me gustaría algo tan simple como:
mail -a myfile.txt -t me@example.com -s "Here's my file"
Respuestas:
De todos los agentes de usuario de correo en el repositorio de Ubuntu, parece que mutt es el MUA de línea de comandos que está bendecido con soporte a largo plazo.
Según el manual , puede hacer algo exactamente como:
mutt -a myfile.txt -s "Here's my file" -- me@example.com
excepto que no irá a ningún lado ya que uno también necesita un Agente de transferencia de correo. Los populares son:
y los únicos que Canonical parece admitir son postfix (gracias por la corrección Steve) y exim4 .
También se podría decir que xdg-email también es un MUA de Ubuntu adecuado, pero es un front-end básico que solo ejecuta su MUA preferido en su nombre.
Si desea consejos sobre qué MTA podría ser adecuado para su uso, quizás abra otra pregunta aquí.
mutt
comando de ejemplo funcionó como se anuncia. Por cierto, nullmailer tiene un front-end falso de sendmail para que la mayoría de los programas que esperan hablar con sendmail sean trasladados a un MTA real sin ningún esfuerzo de mi parte.
También tuve problemas para enviar archivos adjuntos. Cuando envié un correo electrónico sin archivo adjunto, fue exitoso pero no con el archivo adjunto. Este problema era inexistente con sendemail
, mutt
, mail
, mailx
, uuencode
comandos.
Afortunadamente, se resolvió de manera divertida. Yo uso Gmail para enviar correos electrónicos. Puede configurar su gmail para enviar correos electrónicos a través de comandos en la terminal como se declara en http://www.linuxandlife.com/2013/01/send-email-from-linux-terminal.html .
Puede enviar un correo electrónico de texto usando:
mail -s "hello" RECEIVE@mail.com < /home/masoud/YOURFILE.txt
pero no puede enviar el mismo archivo como archivo adjunto que a continuación:
mail -s "hello" RECEIVE@mail.com -a /home/masoud/YOURFILE.txt
o:
mail -s "hello" -a /home/masoud/YOURFILE.txt RECEIVE@mail.com
Finalmente, entendí que solo este formato podía enviar un archivo adjunto:
echo "your message here" | mail -s "title" -a /home/masoud/YOURFILE.txt RECEIVE@mail.com
Curiosamente, la diferencia es la existencia del comando "echo".
Parece que la -a
opción se ha cambiado con mayúsculas -A
para adjuntar ahora. El -a
parece ser para cambiar el encabezado de acuerdo con el documento
.zshrc
archivo a alguien y, aunque uso mail
mucho para enviar mensajes rápidos, intentar enviar un archivo adjunto no funcionaba. Solo necesitaba confirmación de que era posible darse cuenta de que el orden de los argumentos es muy importante. Esto funcionó para mí: mail -s "zshrc" -a ~/.zshrc username@example.com
... por supuesto, aún tenía que escribir el cuerpo del mensaje y presionar ctrl+d
la última línea en blanco.
mail username@example.com -a ~/.zshrc
"funcionó" en el sentido de que envió el mensaje pero no envió el archivo. Si lo hubiera intentado mail username@example.com -a ~/.zshrc -s 'zshrc'
, habría sido obvio que se ignoraron los parámetros después de la dirección del destinatario.
Es posible que desee enviar un archivo desde el shell , pero de lo contrario utilice Thunderbird .
En este caso, try thunderbird -remote ...
es útil, suponiendo que thunderbird generalmente se esté ejecutando:
El comando abre una ventana de redacción de correo de una instancia de Thunderbird en ejecución.
La dirección "De" es su dirección predeterminada configurada en Thunderbird.
Además, se utilizan las configuraciones de cuenta existentes , no se necesita una configuración por separado.
Para un correo dirigido a you@example.com
, con el asunto "S", el cuerpo "B" y un archivo adjunto /some/absolute/file.txt
, el comando es
thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='you@example.com',body='B',attachment='/some/absolute/file.txt')"
Hay dos problemas:
El archivo adjunto debe ser proporcionado por una ruta absoluta , que es tediosa en la práctica. Eso se puede manejar usando readlink -f
para resolver rutas relativas:
thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='you@example.com',body='B',attachment='$(readlink -f file.txt)')"
Además, el comando es demasiado largo. Utilice un script de shell o una función de shell, con cuatro argumentos:
thunderbird-compose () {
thunderbird -remote "xfeDoCommand(composeMessage,subject='$1',to='$2',body='$3',attachment='$(readlink -f $4)')"
}
Con esta función, el comando se vuelve legible:
thunderbird-compose 'Some Subject' test@example.com 'Body of message' file1
abrirá una ventana de "Escritura" de Thunderbird con el archivo adjunto , y el texto De, Para, Asunto y cuerpo completo. Se puede editar antes de enviarlo.
heirloom-mailx
El paquete en Debian proporciona el mailx
comando para enviar archivos adjuntos MIME fácilmente. siguientes trabajos para mí;
mailx -a attachment.zip -s subject rctp@domain.to
mail
e mailx
incluido con RH -alikes tiene -a
para los archivos adjuntos, pero la incluida en Debian -alikes no.
Deseo agregar otra respuesta que se utiliza para agregar texto del cuerpo junto con el archivo adjunto. ¡¡Aclamaciones!!
echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- recipient@domain.com
mail
(akamailx
) es ignorante de MIME, por lo tanto, no puede manejar archivos adjuntos de ninguna manera que no sea de 1980. Esta es una buena pregunta, estoy buscando el canónico canónico MUA; más por venir.