procmail 자동 응답기를 사용하려고 합니다. 첨부 파일과 함께 HTML 양식(이미지, jpg/png)을 다시 보내고 싶습니다. 이것을 달성하는 쉬운 방법이 있습니까? 이것은 지금까지 내 코드입니다.
:0
| ($FORMAIL -rA "$XLOOP" -i "Content-Type: text/html; Content-Transfer-Encoding: base64" -A "Reply-To: [email protected]" -I "From: [email protected]"; cat $HOME/reply.html) | $SENDMAIL -oi -t
reply.html
정상적으로 전달되어 발신자에게 전송이 되었는데, html 파일에 정의된 이미지가 보이지 않습니다 . Google이 이미지를 건너뛰고 보기 흉한 사각형을 표시하는 것처럼 보이기 때문에 이미지를 base64로 인코딩하려고 시도했지만 성공하지 못했습니다.
답변1
$HOME/reply.html
파일이 올바른 형식 이라면 현재 가지고 있는 파일이 작동할 것입니다. 아아, 귀하의 설명에 따르면 그렇지 않습니다.
그런데 저는 이 파일에 가능한 한 많은 정적 헤더를 분리하고 formail
미리 계산할 수 없는 헤더 앞에 추가하는 데만 사용하겠습니다. 그렇게 되면 너만 남게 될 거야
:0
| (formail -rA "$XLOOP" | grep .; cat $HOME/reply.html) | $SENDMAIL -oi -t
Procmail 레시피에서 ( XLOOP
헤더가 실제로 정적이라면 템플릿에도 포함시킬 수 있습니다. 이는 응답 헤더를 생성할 때 헤더와 본문 사이에 "목"으로 빈 줄을 제공하기 grep .
때문입니다 . formail
, 그러나 파일에 추가 헤더가 있으므로 여기서는 이를 원하지 않으므로 formail
출력에서 빈 줄을 제거합니다.
비결은 다양한 MIME 부분을 서로 올바르게 연결하는 것입니다. 이것은 템플릿입니다. 이 파일은 HTML 파일이 아닙니다. HTML 부분, 이미지 부분 및 기타 내용을 포함하는 MIME 구조이므로 이름을 바꿔야 할 수도 있습니다.
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=3D"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--
최상위 MIME 부분의 구조에 주목하세요 multipart/related
. 이 부분에는 서로 연결될 수 있는 개별 MIME 부분이 포함되어 있습니다. (모두 임시 인쇄이므로 오류나 실수가 있는 점 사과드립니다.)