sendmail o anexo está vazio

2

Estou tentando incluir um anexo no meu arquivo eml do sendmail. O arquivo eml atual (order.eml) tem o seguinte conteúdo

From: Sender <[email protected]>
To: [email protected]
Subject: Report
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="B835649000072104Jul07"

--B835649000072104Jul07
Content-Type: text/plain; charset="US-ASCII"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Body Copy

--B835649000072104Jul07
Content-Type: application/pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="por5151.pdf"
base64 por5151.pdf

--B835649000072104Jul07--

os arquivos order.eml e por5151.pdf estão no mesmo diretório e eu tento enviá-lo com

# /usr/sbin/sendmail -t < order.eml

Quando o email chega, posso ver o por5151.pdf nos anexos, mas ele está em branco (0 bytes). Eu não sei porque isso é e eu estou lutando para consertá-lo

    
por Trent 17.08.2015 / 13:07

2 respostas

1

O que você precisa fazer é incluir o arquivo abaixo da

Content-Disposition: attachment; filename="por5151.pdf"

linha enquanto você gera o arquivo .eml . Você pode fazer isso usando o utilitário base64 :

base64 por5151.pdf

Certifique-se de que o limite de fechamento ( --B835649000072104Jul07-- ) seja inserido por trás disso.

sendmail não interpreta o arquivo que você o entrega e, portanto, não insere magicamente o conteúdo do arquivo .pdf .

    
por 17.08.2015 / 13:31
0

Eu criei o script abaixo para anexar um arquivo CSV. Sua truncando o nome da coluna de CSV incorretamente e também há mais um arquivo fica com e-mail, ou seja, 'ATT0001.txt'.

(
echo "From:"$1;
echo "To:"$2;
echo "Subject:"$3;
echo "MIME-Version: 1.0";
echo "Content-Type:multipart/mixed; boundary=\"B835649000072104Jul07\"";

echo "--B835649000072104Jul07";
echo "Content-Type: text/html; charset=\"UTF-8\"";
echo "Content-Transfer-Encoding: 7bit";
echo "Content-Disposition: inline";
echo "";
echo "$4";

echo "--B835649000072104Jul07";
echo "Content-Type: text/csv";
echo "Content-Transfer-Encoding: base64";
echo "Content-Disposition: attachment; filename=\"$5\"";
base64 "$5"

echo "--B835649000072104Jul07";
) | sendmail -t
    
por 08.03.2018 / 15:07