특정 전자 메일 및 / 또는 수신자가 (자동 또는 키 바인딩을 눌러) 보내기 전에 스크립트를 실행하여 내을 가져 와서 text/plain
스크립트를 실행 한 다음 해당 스크립트의 출력을 text/html
유형으로 첨부 하는 옵션을 원합니다 전체 메시지를로 설정합니다 multipart/alternative
.
사이드 럼블 : 전송하기 직전에 자동으로 발생했지만 본문 유형이 현재로 설정된 경우에만 text/markdown
보류중인 이메일이 소스를 다시 편집하지만 HTML 재생성을 잊어 버린 상태가 아님을 의미하므로, 그리고 난 여전히 보낼 옵션이 text/plain
있습니다. 그런 다음 본문의 콘텐츠 유형을로 설정하는 또 다른 바인딩을 사용하여 text/markdown
이것이 선택되도록합니다. 그러나 많은 메일 클라이언트 (Gmail 포함)가 렌더링을 거부하고 text/markdown
(일반 텍스트로도) 다운로드로 제공하지 않으므로 소스 부분의 콘텐츠 유형을 다시 전환 해야하는 문제가 있습니다. 에 text/plain
.
똥개로 그런 일이 가능합니까?
안타깝게도 mutt가 multipart/alternative
메시지 보내기 를 지원하지 않고 아무것도 보내지 않는 것을 지원하지 않지만 multipart/mixed
잘못되었다는 사실을 알고 싶습니다.
내가 생각해 낸 가장 좋은 해결책은 다음 매크로입니다.
macro compose M "<filter-entry>commonmark<return>y<edit-type><kill-line>text/html<return>" "convert message to HTML with Commonmark"
이것에는 몇 가지 문제가 있습니다.
- 원본 일반 텍스트를 완전히 대체하므로 편집하기가 훨씬 어렵습니다.
y
매크로에 파일을 덮어 쓸 수 있는지 묻는 대화 상자에 예라고 말하는 것이 마음에 들지 않습니다.- 이 실행 후 return 키를 눌러야합니다
- 물론 중요한 것은 대체 텍스트를 보내지 않습니다.
더 나은 해결책이 있습니까?
잠재적으로 다른 텍스트 모드 메일 클라이언트에 열려있을 가능성이 있습니다.
- Google Apps와 함께 사용할 수 있으며 양방향으로 플래그 등을 동기화합니다.
- GPG 지원
- vim과 같은 바인딩이 있거나 구성 할 수 있습니다.
- vim을 메시지 편집기로 사용하겠습니다
- 스레드 메시지보기가 있습니다
- 다소 복잡한 방식으로 메일을 필터링 / 검색 할 수 있습니다 (발신자, 수신자, 첨부 파일 존재, 제목 및 본문 검색)
- lynx를 통해 들어오는 HTML 메일을 실행하거나 필요한 경우 그래픽 브라우저에서 열려면 무언가를 누르십시오. 버튼을 누르면 이미지 뷰어를 시작할 수 있습니다.
답변
NeoMutt이 멀티 파트를 지원하는 것을 잊었습니다.
https://neomutt.org/guide/mimesupport .
답변
#!/bin/bash
cp $1 $1.tmp
##CHANGE OVERALL TYPE IN HEADER TO MULTIPART
#HANDLE CONTENT-TYPE LINE IN HEADER
if grep -q "Content-Type:" $1; then
sed -i -e 's/Content-Type:.*?;/Content-Type: multipart\/alternative; boundary=boundary42/' $1.tmp
else
sed -i '1iContent-Type: multipart/alternative; boundary=boundary42' $1.tmp
fi
#EXTRACT HEADER AND BODY
header="$(sed '/^$/q' $1.tmp)"
body="$(sed -n -e '/^$/,$p' $1.tmp | tail -n +2)"
#CREATE HTML VERSION
HTMLbody="$(echo "$body" | commonmark)"
#ADD HEADER
echo "$header" > $1
#START PLAIN TEXT
echo -e "\n--boundary42\n" >> $1
echo -e "Content-Type: text/plain; charset=us-ascii\n" >> $1
echo "$body" >> $1
#START HTML
echo -e "\n--boundary42\n" >> $1
echo "Content-Type: text/html; charset=UTF-8" >> $1
echo "Content-Transfer-Encoding: quoted-printable\n" >> $1
echo "$HTMLbody" >> $1
echo -e "\n--boundary42--" >> $1
msmtp $1