Tenho quase certeza de que o que está acontecendo aqui é que o programa mail
está enviando seus anexos usando o formato uuencode, enquanto mutt
os envia no formato MIME.
uuencode é um formato de e-mail desatualizado e foi substituído pelo MIME, então eu não ficaria surpreso se o manipulador de @ kindle.com não fosse capaz de reconhecer o formato uuencode, apenas MIME.
É difícil dizer como o comando mail
se comportará (a partir de sua pergunta), pois há muitas implementações de mail
enviadas por diferentes distribuições Linux (muitas das quais nem sequer suportam anexos). mais detalhes sobre sua distribuição Linux, pacote que possui o binário mail
e talvez alguma referência de man mail
, podemos tentar confirmar isso. (Além disso, talvez a página man possa ter detalhes sobre o uso do formato uuencode para anexos ou suporte a MIME ou a falta dele. Veja lá para ver se você encontra mais.)
Uma maneira de confirmar isso é enviar e-mails com anexos para você mesmo usando mail
e mutt
e observe o corpo do e-mail bruto. Você deve ser capaz de dizer se parece com uuencode ou MIME.
uuencode é algo como isto:
begin 644 myebook.pdf
Enquanto o MIME é assim:
Content-Type: application/pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=myebook.pdf
UPDATE: Nos cabeçalhos que você incluiu, parece que o seu mailer é usando MIME, mas como você percebeu, ele não está enviando o arquivo como um anexo (o que teria sido marcado com Content-Disposition: attachment
), mas como o corpo principal do email (ignorando o corpo que você forneceu.)
A documentação do GNU mailutils no MIME indica que isso deve funcionar como você esperava, por exemplo:
All the examples above will enter the usual interactive shell, allowing you to compose the body of the message. If that’s not needed, the non-interactive use can be forced by redirecting /dev/null to the standard input, e.g.:
$ mail --attach=archive.tar < /dev/null
Meu entendimento do "shell interativo" é que ele está esperando que você digite o corpo da mensagem, mas aceita comandos que começam com um caractere especial (~), o que o torna um interpretador de comandos também.
Talvez tente usar mail
sem canalizar o corpo para ele, para ver se ele está esperando alguma entrada e, em seguida, veja se ele aceita um corpo de e-mail se você o digitar diretamente?