mutt 첨부 파일 이름 복원

mutt 첨부 파일 이름 복원

mutt내 파일 관리자를 사용하여 첨부 파일을 저장하는 작은 매크로가 있습니다 ranger. 다음과 같습니다.

macro attach S "<pipe-message>muttsaveattach"<enter>

mutttsaveattach다음 스크립트는 어디에 있습니까?

#!/bin/sh
urxvt -e ranger --choosefile=/tmp/muttattach
cat > $"`cat /tmp/muttattach`"

투박하지만 효과적입니다. 첨부 파일을 덤프한 /tmp/muttattach다음 해당 파일의 내용을 ranger.

유일하게 아쉬운 점은 첨부 파일의 원래 이름을 어떻게든 복원하여 내 스크립트에서 사용할 수 있다는 것입니다. mutt매크로에 사용하기 위해 이 값을 보유하도록 제공할 수 있는 변수가 있습니까 ? 그렇지 않은 경우 이름을 복구하고 사용할 수 있는 다른 방법이 있습니까?

답변1

현재로서는 이 접근 방식이 가능하지 않다고 생각합니다. Mutt와 Neomutt에는 사용자가 파일 이름을 제공할 수 있는 변수가 없습니다. 하지만 나는 그것을 달성하기 위해 mailcap을 사용하는 방법을 알고 있습니다.

다음을 수행하는 매크로가 있다고 가정해 보겠습니다.

  • 현재 값을 mailcap_path변수에 저장하고,
  • 새 항목을 설정합니다 mailcap_path(아래의 mailcap 파일 예시 참조).
  • 첨부 파일을 보려면 mailcap을 강제로 사용하십시오.
  • mailcap_path이전 경로로 되돌립니다 .
macro attach S\
<enter-command>set my_mailcap_path=$mailcap_path<enter>\
<enter-command>set mailcap_path=~/.mailcap2<enter>\
<view-mailcap>\
<enter-command>set mailcap_path=$my_mailcap_path<enter>\

가능한 각 mailcap 유형에 대해 mailcap 항목을 생성해야 합니다(하위 유형 제외, 와일드카드 사용 가능).

예 ~/.mailcap2

application/*; /your/script %s
audio/*;       /your/script %s
font/*;        /your/script %s
image/*;       /your/script %s
message/*;     /your/script %s
model/*;       /your/script %s
text/*;        /your/script %s
video/*;       /your/script %s

스크립트를 조금 변경해야 합니다. 첨부 파일이 더 이상 파이프로 연결되지 않기 때문입니다. 파일 이름을 매개변수로 가져옵니다. 아니면 mailcap2 파일을 직접 변경하여 포함해 보세요.filetype/*; urxvt -e ranger --choosefile=%s

#!/bin/sh
urxvt -e ranger --choosefile=$1

또한 100% 확실하지는 않지만 매크로의 첫 번째 명령을 제거 <enter-command>set my_mailcap_path=$mailcap_path<enter>\하고 그 전에 변수를 할당해야 할 수도 있습니다. 내 생각엔 전에도 이런 일을 겪은 적이 있는 것 같아. 단일 매크로에서 변수를 설정하거나 설정 해제하는 것이 제대로 작동하지 않습니다.

면책 조항: 테스트하지는 않았지만 이것이 작동할 것이라고 확신합니다.

관련 정보