Como enviar email com anexo pelo 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 de algumas coisas básicas, incluindo o postfix.

Estou tentando descobrir uma maneira de enviar um email para o meu endereço do gmail com um anexo, mas não consigo descobrir como. Já confirmei 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 funcionará bem, mas estou pensando em como fazer a mesma coisa no postfix na linha de comando?

Muito obrigado antecipadamente por esta pergunta idiota.

Michael Mao
fonte

Respostas:

14

Por que tem que ser postfixdiretamente? mailx -a,, muttou mutt -atambém usará a sendmailinterface - a menos que você os configure para SMTP.

eco "Esta é uma mensagem de teste" | mutt -s Test -a foo.zip - $ USER
eco "Esta é uma mensagem de teste" | mail -s Test -a foo.zip $ USER

(Observe que em bsd-mailx a opção é alternativa -A).


Enfim, aqui está um exemplo de "postfix".

Substitua $USER, tipo de conteúdo e nome do arquivo para corresponder ao seu ambiente. O exemplo supõe que você esteja enviando a mensagem para si mesmo e tenha um arquivo ZIP foo.zipno 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 multipartes MIME deixadas como um exercício para o leitor.)

user1686
fonte
mail -a foo.zipnão anexa foo.zipa uma mensagem como em mutt.
nr
@ nicolai.rostov: depende mail, eu acho. Faz isso em heirloom-mailx.
user1686
7

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

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

Gilles 'SO- parar de ser mau'
fonte
4

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

apt-get install sendemail

Em seguida, você pode simplesmente dizer a ele para usar localhost (Postfix) como o MTA.

Na verdade, acabei de perceber 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
Docunext
fonte
1

O mailx 12.4 possui uma opção para anexar arquivos:

-a arquivo
    Anexe o arquivo fornecido à mensagem.

Por exemplo:

[gawad @ centos Desktop] $ mail -s "pine" -a pine.rpm.gz root @ localhost Enter
este é o software pine que você solicitou Enter
.Enter
EOT
[Área de trabalho gawad @ centos] $ 
user228560
fonte