A maneira mais fácil de enviar por e-mail o arquivo via linha de comando no * nix?

10

Qual é o comando mais fácil - e de preferência mais portátil - que posso usar para enviar um único arquivo por e-mail como um anexo a um shell * nix?

    
por Yuval A 02.06.2009 / 11:15

9 respostas

11

Supondo que seja um anexo binário:

uuencode [nome do arquivo] [nome do arquivo] | mail -s [subject] [endereço do destinatário]

Você não precisa se preocupar com o UUencoding se é apenas um arquivo de texto, por exemplo:

mail -s [subject] [endereço do destinatário] < [nome do arquivo]

A maioria dos * NIXes tem mail e uuencode, então isso deve funcionar praticamente em qualquer lugar.

    
por 02.06.2009 / 11:23
11

Usando o mutt, você pode:

mutt -z -a <file> -s <subject> -- [email protected]

Ou, se você não quiser digitar um corpo:

mutt -z -a <file> -s <subject> -- [email protected] < /dev/null

    
por 02.06.2009 / 11:25
2

" sendEmail é um cliente de e-mail SMTP leve e de linha de comando. Se você tiver necessidade de enviar e-mail a partir de uma linha de comando, este programa gratuito é perfeito: simples de usar e rico em recursos.Ele foi projetado para ser usado em scripts bash, arquivos em lote, programas Perl e sites, mas é bastante adaptável e provavelmente irá atender às suas necessidades. escrito em Perl e é único na medida em que requer NO MODULES.Ele tem um conjunto intuitivo e flexível de opções de linha de comando, tornando muito fácil de aprender e usar. [Plataformas suportadas: Linux, BSD, OS X, Windows 98, Windows NT, Windows 2000 e & Windows XP] "

Eu já usei isso antes e realmente gostei. Você pode anexar arquivos com a opção -a.

    
por 02.06.2009 / 16:29
1

Eu não posso adicionar um comentário, mas ..

  • As respostas para isso dependerão muito de quais derivativos de mailx você tem disponível.
  • Embora o arquivo deva ser exibido sem qualquer problema pelo MUA receptor, a canalização de uuencode tecnicamente não produzirá um email com um anexo. Dê uma olhada na fonte do e-mail que você recebe para ver o motivo.
por 02.06.2009 / 11:32
1

Se você deseja portabilidade absoluta, pode fazer telnet em seu servidor de e-mail na porta 25 e emitir comandos SMTP diretamente. Eles não são muito difíceis e devem ser muito programáveis.

    
por 02.06.2009 / 14:49
1

Um rápido Google apareceu esta página , que descreve uma variedade de maneiras de anexar arquivos usando uma variedade de aplicações. Alguns dos mais prevalentes -

  • uuenc8de para criar um "anexo" em linha.

  • metamail -f file-to-attach -m mime-type

  • mpack -c mime-type file-to-attach

  • mutt -a file-to-attach

  • Elm -A file-to-attach

Além disso, ele possui links para um casal shell scripts e um Perl script para criar e enviar a mensagem, que provavelmente será mais do seu agrado.

    
por 02.06.2009 / 15:12
1
echo "Email body text" | mail -s "Subject of email" -a file.to.attach.txt [email protected]
    
por 02.06.2009 / 11:27
0

Alguns anos atrás, escrevi um script de shell que fez exatamente isso. Foi chamado binmail.sh. Ele usava um codificador de base64 (muitos códigos-fonte podem ser encontrados com google ) e criava anexos de acordo com RFC1521 .

    
por 02.06.2009 / 14:15
0

Ou se você tiver o python disponível, serão necessárias apenas algumas linhas, como as listadas aqui: Enviando anexos em python

    
por 02.06.2009 / 17:06