O que você deve trabalhar, desde que o arquivo $HOME/reply.html
esteja formatado corretamente. Infelizmente, como por sua descrição, não é.
Incidentalmente, eu fatoraria o máximo possível dos cabeçalhos estáticos nesse arquivo, e só usaria formail
para preceder os cabeçalhos que não podem ser calculados com antecedência. Isso deixa você com apenas
:0
| (formail -rA "$XLOOP" | grep .; cat $HOME/reply.html) | $SENDMAIL -oi -t
na receita do Procmail (e se o cabeçalho XLOOP
for de fato também estático, você pode incluir isso no modelo. O grep .
é porque formail
fornece uma linha vazia como o "gargalo" entre os cabeçalhos e corpo quando gera cabeçalhos de resposta, mas não queremos isso aqui, já que estaremos fornecendo cabeçalhos adicionais no arquivo que estamos catenando após os cabeçalhos de formail
; portanto, removemos a linha vazia da saída) .
O truque é ter as diferentes partes MIME conectadas umas nas outras corretamente. Aqui está um modelo de tipos. Note que este não é um arquivo HTML - é uma estrutura MIME que contém uma parte HTML, uma parte da imagem e outro tipo de chaff - então você pode querer renomeá-lo.
From: [email protected]
X-Reply-To: The reply-to: header is redundant if its value is the same as From:
MIME-Version: 1.0
Content-Type: multipart/related; boundary="reasonablyuniquegobbledygook"
--reasonablyuniquegobbledygook
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
This message is HTML-only because I hate you. Nothing personal, I hate
everyone.
--reasonablyuniquegobbledygook
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
<html><head><title>Reply</title></head><body><p>
I cannot think of a situation where you would genuinely want to base64
your HTML.
<img src="cid:logo.png"></p></body></html>
--reasonablyuniquegobbledygook
Content-Type: image/png; name="logo.png"
Content-Transfer-Encoding: base64
Content-Id: <logo.png>
SGVyZSBpcyBzb21lIGJhc2U2NCBmb3IgeW91LiAgVGhpcyBpcyBvYnZpb3VzbHkgYWN0dWFsbHkg
dGV4dCwgbm90IGltYWdlL3BuZyBkYXRhLgo=
--reasonablyuniquegobbledygook--
Observe como a parte MIME de nível superior é multipart/related
e, em seguida, contém partes MIME individuais que podem se vincular umas às outras. (Isso é tudo datilografado ad hoc, então peço desculpas por quaisquer erros ou descuidos.)