Como enviar email com anexo por postfix da linha de comando?

10

Acabei de configurar um novo servidor Ubuntu 10.04 LTS no linode para mim. Seguiu uma excelente instrução em: aqui para concluir a instalação do algumas coisas básicas, incluindo o postfix.

Estou tentando descobrir uma maneira de enviar um e-mail para meu endereço do Gmail com um anexo, mas não consigo encontrar como. Já confirmou que o e-mail pode acessar minha conta do Gmail.

No final, eu tenho que usar o mutt para enviar o email com anexos, provavelmente o SendEmails também fará bem, mas eu estou querendo saber como fazer a mesma coisa no postfix da linha de comando?

Muito obrigado antecipadamente por esta pergunta idiota.

    
por Michael Mao 11.12.2010 / 13:51

4 respostas

14

Por que tem que ser postfix diretamente? mailx -a , mutt ou mutt -a também usarão a interface sendmail - a menos que você os configure para SMTP.

echo "This is a test message" | mutt -s Test -a foo.zip -- $USER
echo "This is a test message" | mail -s Test -a foo.zip $USER

(Nota: em bsd-mailx, a opção é -A ).

De qualquer forma, aqui está um exemplo de "postfix".

Substitua $USER , tipo de conteúdo e nome de arquivo para corresponder ao seu ambiente. Exemplo assume que você está enviando a mensagem para si mesmo e tem um arquivo ZIP foo.zip no diretório atual.

(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"

(Criação de mensagens multiparte MIME deixadas como um exercício para o leitor.)

    
por 11.12.2010 / 21:34
7

O postfix é um agente de transferência de e-mail (MTA) . Seu trabalho é lidar com a entrega do correio: pegue-o e envie-o para o próximo ponto em sua rota. Postfix é um funcionário dos correios, cujo trabalho é pegar um envelope e (com a ajuda de seus colegas) levá-lo ao destinatário.

O que você está pedindo aqui é o trabalho de secretariado: montar documentos para colocá-los no envelope. Esse não é o trabalho do Postfix: é um trabalho para um agente de usuário de e-mail (MUA) . Você pode escrever um MUA bruto que apenas monta peças para fazer um email em algumas linhas de shell, como o grawity fez , mas o Mutt é realmente uma boa ferramenta para esta tarefa.

    
por 12.12.2010 / 01:36
4

Na linha de comando, eu gosto de usar o "sendemail", que no ubuntu / debian pode ser instalado a partir da linha de comando da seguinte forma:

apt-get install sendemail

Então você pode simplesmente dizer para usar o localhost (Postfix) como o MTA.

Na verdade, notei que localhost: 25 é o padrão:

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

Você adiciona anexos usando o sinalizador -a:

sendemail -f [email protected] -t [email protected] -m "This is the message" -u "This is the subject" -a file1.zip file2.zip
    
por 06.05.2011 / 20:42
1

mailx 12.4 tem uma opção para anexar arquivos:

-a file
    Attach the given file to the message.

Por exemplo:

[gawad@centos Desktop]$ mail -s "pine" -a pine.rpm.gz root@localhostEnter
this is the pine software you asked forEnter
.Enter
EOT
[gawad@centos Desktop]$ 
    
por 03.06.2013 / 00:08