mutt 매크로가 현재 메시지에서 속성을 가져올 수 있나요?

mutt 매크로가 현재 메시지에서 속성을 가져올 수 있나요?

매크로가 mutt현재 메시지에서 일부 속성을 가져와서 변수로 사용할 수 있습니까? 다음은 내가 얻고 싶은 속성을 가진 잠재적인 매크로의 몇 가지 예입니다.이탤릭체.

  • GPG 암호화 제거최신 뉴스를 위해. 곧 decrypt-save도착현재 이메일메시지가 포함되어 있습니다.
  • 현재 메시지 저장제목과 날짜가 적힌 파일로. 즉 | cat > /tmp/filename, 파일 이름은date_subject.
  • 메시지를 사서함에 보관하십시오 archive-year.년도메시지의 연도에 따라 다릅니다. (이있다방법메시지 날짜가 아닌 현재 날짜를 기준으로 이 작업을 수행합니다. )

답변1

비슷하다다른 답변, 일반적인 의미에서 속성을 가져오는 방법을 파악하지 못했지만 이는 두 번째 예에 대한 해키 솔루션입니다.

표준 입력을 통해 이메일을 받아들이고 날짜와 제목을 추출하여 /path/to/save/email/date_subject.

#!/bin/env bash

message=$(cat)

mail_date=$(<<<"$message" grep -oPm 1 '^Date: ?\K.*')
formatted_date=$(date -d"$mail_date" +%y%m%d)
# Get the first line of the subject, and change / to ∕ so it's not a subdirectory
subject=$(<<<"$message" grep -oPm 1 '^Subject: ?\K.*' | sed 's,/,∕,g')    
# decode base64 (UTF-8)
if [[ "$subject" =~ ^=\?[Uu][Tt][Ff]-8\?B\?.*?= ]]; then
  nofront="$(echo "${subject#=\????-8\?B\?}")"
  todecode="$(echo "${nofront%\?=}")"
  subject="$(<<<"$todecode" base64 --decode)"
fi

if [[ $formatted_date == '' ]]; then
  echo Error: no date parsed
  exit 1
elif [[ $subject == '' ]]; then
  echo Warning: no subject found
fi

echo "${message}" > "$1/${formatted_date}_${subject}.eml" && echo Email saved to "$1/${formatted_date}_${subject}.eml"

에서 다음 함수 muttrc에 바인딩합니다 .S

macro index,pager S "| /path/to/script /path/to/save/email<enter>"

여러 줄로 구성된 제목의 첫 번째 줄만 사용됩니다.

답변2

메시지에서 속성을 가져오는 방법을 모르지만 적어도 첫 번째 예에서는 다른 솔루션이 있습니다.

현재 사서함에 대한 바로 가기로 사용할 수 있으므로 현재 사서함에 액세스 ^하려면 다음을 사용할 수 있습니다.decrypt-save

macro index <F7> <decrypt-save>^<Enter>y<Enter>

관련 정보