¿Cómo enviar correos electrónicos con archivos adjuntos por postfix desde la línea de comandos?

10

Acabo de configurar un nuevo servidor Ubuntu 10.04 LTS en linode para mí. Seguí una excelente instrucción en: aquí para terminar la instalación de algunas cosas básicas, incluyendo postfix.

Estoy tratando de encontrar una manera de enviar un correo electrónico a mi dirección de Gmail con un archivo adjunto, pero no puedo encontrar cómo. Ya confirmó que el correo electrónico puede llegar a mi cuenta de Gmail.

Al final tengo que usar mutt para enviar el correo electrónico con archivos adjuntos, probablemente SendEmails también funcionará bien, pero me pregunto cómo hacer lo mismo en postfix desde la línea de comandos.

Muchas gracias de antemano por esta pregunta tonta.

Michael Mao
fuente

Respuestas:

14

¿Por qué tiene que ser postfixdirectamente? mailx -a, mutto mutt -atambién usará la sendmailinterfaz, a menos que los configure para SMTP.

echo "Este es un mensaje de prueba" | mutt -s Test -a foo.zip - $ USER
echo "Este es un mensaje de prueba" | mail -s Test -a foo.zip $ USER

(Nota, en bsd-mailx la opción es en su -Alugar).


De todos modos, aquí hay un ejemplo de "postfix".

Reemplazar $USER, tipo de contenido y nombre de archivo para que coincida con su entorno. El ejemplo asume que te estás enviando el mensaje y tienes un archivo ZIP foo.zipen el directorio actual.

(printf "%s\n" \
    "Subject: test" \
    "To: $USER" \
    "Content-Type: application/zip" \
    "Content-Disposition: attachment; filename=foo.zip" \
    "Content-Transfer-Encoding: base64" \
    "";
 base64 foo.zip) | sendmail "$USER"

(Creación de mensajes MIME multiparte que se dejan como ejercicio para el lector).

usuario1686
fuente
mail -a foo.zipno se adjunta foo.zipa un mensaje como con mutt.
nr
@ nicolai.rostov: depende de mail, supongo. Lo hace en heirloom-mailx.
user1686
7

Postfix es un agente de transferencia de correo (MTA) . Su trabajo es manejar la entrega del correo: recójalo y envíelo al siguiente punto de su ruta. Postfix es un empleado de correos, cuyo trabajo es tomar un sobre y (con la ayuda de sus colegas) llevarlo al destinatario.

Lo que estás pidiendo aquí es trabajo de secretaría: reunir documentos para ponerlos en el sobre. Ese no es el trabajo de Postfix: es un trabajo para un agente de usuario de correo (MUA) . Puede escribir un MUA crudo que solo ensambla piezas para hacer un correo en unas pocas líneas de concha, como lo hizo Grawity , pero Mutt es realmente una buena herramienta para esta tarea.

Gilles 'SO- deja de ser malvado'
fuente
4

Desde la línea de comandos, me gusta usar "sendemail", que en ubuntu / debian se puede instalar desde la línea de comandos de la siguiente manera:

apt-get install sendemail

Luego, simplemente puede decirle que use localhost (Postfix) como MTA.

En realidad, acabo de notar que localhost: 25 es el valor predeterminado:

-s SERVER[:PORT]          smtp mail relay, default is localhost:25

Luego agrega archivos adjuntos usando la bandera -a:

sendemail -f [email protected] -t [email protected] -m "This is the message" -u "This is the subject" -a file1.zip file2.zip
Docunext
fuente
1

mailx 12.4 tiene una opción para adjuntar archivos:

-a archivo
    Adjunte el archivo dado al mensaje.

Por ejemplo:

[gawad @ Centos Desktop] $ mail -s "pine" -a pine.rpm.gz root @ localhost Enter
este es el software pine que solicitó Enter
.Enter
EOT
[gawad @ Centos Desktop] $ 
usuario228560
fuente