mutt로 multipart / alternative 보내기


12

특정 전자 메일 및 / 또는 수신자가 (자동 또는 키 바인딩을 눌러) 보내기 전에 스크립트를 실행하여 내을 가져 와서 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 메일을 실행하거나 필요한 경우 그래픽 브라우저에서 열려면 무언가를 누르십시오. 버튼을 누르면 이미지 뷰어를 시작할 수 있습니다.

답변:


1

NeoMutt이 멀티 파트를 지원하는 것을 잊었습니다. https://neomutt.org/guide/mimesupport .


그것은 듣기 좋다. 당신이 링크 한 페이지에 multipart / alternative 전송 지원은 초보적이지만 잠시 후에 시도 할 것입니다. 지적 해 주셔서 감사합니다.
tremby

Neomutt은 일반적인 ol 'mutt를 대체하는 것으로 간주됩니다. 또 다른 좋은 점은 상당히 큰 개발이 진행되고 있다는 것입니다.
Davey

이 기능이 1 년 전에 추가 된 것 같습니다 : github.com/neomutt/neomutt/pull/734
tremby

잘 작동합니다. neomutt.org/guide/에 게시 한 문서에서 제안한 것과 비슷한 매크로를 만들었습니다. 매크로 를 사용한 후에도 Enter 키를 눌러야하지만 아직 만들려면 어떻게 될지 잘 모르겠습니다. 대안을 생성 한 후 보내기 전에 변경하지만, 적절한 과정에서 모든 것을 알아 낼 것입니다. multipart / alternative를 지원하는 첫 번째 버전은 2018-05-12 릴리스이며 아직 내 배포판에는 없습니다. 로 소스에서 컴파일했습니다 --gnutls --prefix/usr/local --tokyocabinet.
tremby

-1
    #!/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

귀하는 " '보낸 사람'전자 메일 주소마다 다른 서명을 사용할 수 있습니까?"라는 질문에 대답 한 것으로 보입니다. 멀티 파트 / 대체 이메일을 보내는 데 이것이 어떻게 도움이되는지 모르겠습니다.
tremby

답변을 수정 한 것을 확인했습니다. 좋아, 이것은 당신이 보내고받는 이메일 주소를 확인하고 ( "from"으로 아무것도하지 않는 것처럼 보임) 헤더를 추가 할 가능성이 있습니다. 그러나 여전히 이것이 다중 부분 / 대체 전자 메일을 보내는 데 어떻게 도움이되는지 알지 못합니다.
tremby

당신은 아마 당신의 필요에 맞게 이것을 조정해야 할 것이므로, 나는 당신을 위해 모든 것을 철자 할 수는 없습니다. 그러나 일반적인 해결책은 편집기를 편집기를 호출하는 스크립트로 설정 한 다음 초안 파일을 구문 분석하는 것입니다.
Davey

mutt가 multipart / alternative를 보낼 수있는 드래프트 파일의 특정 편집은 무엇입니까? HTML과 일반 텍스트의 두 파일 버전은 어디에 있습니까?
tremby

공통 표시로 변환하는 방법이있는 것 같습니다. 이를 someMultipartScript 줄로 바꾸십시오. 이 시점에서 $ 1은 평문입니다. 변환 도구를 통해 전송하여 동일한 파일 이름 $ 1로 파이프하십시오. 이 스크립트는 종료 될 때 호출 프로그램 (음소거)에 신호를 보내 편집기가 닫히고 전송 준비가되어야한다는 신호를 보냅니다.
Davey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.