2. 시작 하기

이번장은 Mutt의 사용법에 대해 간단하게 알아본다. 더 많은 기능에 대한 설명이 이 문서에 존재하며, 그외 많은 정보를 Mutt FAQ 와 다양한 웹 페이지에서 찾을수 있다. Mutt 홈페이지를 참고해라.

여기서 설명하는 모든 키 설정은 기본 값이다. 이 값은 배포본에 의해 만들어진 패키지이거나 시스템 관리자가 시스템 설정 파일을 변경하였을 수 있으므로 아무 메뉴에서나 ``?''를 사용하면 현재 키 바인딩 상태를 알수 있다.

첫번째 할 것은 간단히 명령줄에서 mutt를 입력하고 mutt를 실행시키는 것이다. 다양한 명령줄(command-line) 옵션이 있으며, 이에 관해서는 man 페이지 또는 실행 옵션를 참고하라.

2.1. 메뉴에서 이동

다음은 메뉴에서의 일반적인 키이다.

j 또는 Down       next-entry      다음 항목으로 이동
k 또는 Up         previous-entry  이전 항목으로 이동
z 또는 PageDn     page-down       다음 페이지
Z 또는 PageUp     page-up         이전 페이지
= 또는 Home       first-entry     처음 항목으로 이동
* 또는 End        last-entry      마지막 항목으로 이동
q                quit            현재 메뉴에서 나감
?                help            현재 메뉴의 모든 키바인딩 보여주기

2.2. 입력란에서의 편집

Mutt은 내장 라인 에디터를 가지고 있으며, 이것은 이메일 주소, 제목, 파일 이름등을 입력할때 사용된다. 이때 사용되는 키들은 Emacs의 그것과 매우 비슷하다.

^A 또는 <Home>   bol             처음으로 이동
^B 또는 <Left>   backward-char   왼쪽으로 이동
Esc B		backward-word	단어의 처음으로 이동
^D 또는 <Delete> delete-char     커서의 글자 삭제
^E 또는 <End>    eol             줄의 끝으로 이동
^F 또는 <Right>  forward-char    오른쪽으로 이동
Esc F		forward-word	단어의 끝으로 이동
<Tab>           complete        파일 이름, 알리아스 (이메일 주소) 완성 하기
^T              complete-query  쿼리로 주소 완성하기
^K              kill-eol        커서 오른쪽 라인 삭제
ESC d		kill-eow	커서 오른쪽 단어 삭제
^W              kill-word       커서 왼쪽 단어 삭제
^U              kill-line       한줄 삭제
<Up>            history-up      기억된 것에서 이전 문자
<Down>          history-down    기억된 것에서 다음 문자
<BackSpace>     backspace       커서 앞쪽의 글자 지우기
Esc u		upcase-word	대문자로 변환
Esc l		downcase-word	소문자로 변환
Esc c		capitalize-word 단어를 대문자로 시작
^G              n/a             취소
<Return>        n/a             편집 끝냄

이 키들은 bind 명령을 사용해서 재 정의 할 수 있다. 예를 들어 Delete를 backspace와 같은 역할을 하도록 한다면,

bind editor <delete> backspace

2.3. 메일 읽기 - 인덱스(Index)와 페이저(Pager)

다른 메일 클라이언트처럼 Mutt 도 두가지 모드를 가지고 있다, 현재 메일함이 포함하고 있는 메일의 목록을 보여주는 인덱스(index)와 메일의 내용을 보는 페이저(pager)이다.

다음은 각 모드의 기능들과 키이다.

2.3.1. 메일 인덱스

c               다른 메일함 열기
ESC c           메일함을 읽기 전용으로 열기
C               현재 메일을 다른 메일함으로 복사
ESC C           메일를 디코딩하고 폴더로 복사
ESC s           메일를 디코딩하고 폴더에 저장
D               패턴(pattern)에 일치하는 메일 삭제
d               현재 메일 삭제
F               중요 표시하기
l               패턴(pattern)에 일치하는 메일 표시
N               새 메일 표시
o               정렬 방법 바꾸기
O               역으로 정렬하기
q               편지함에 변경 사항 저장 후 끝내기
s               메일/첨부물 파일로 저장
T               패턴과 일치하는 메일에 태그 붙임
t               태그 붙이기
ESC t           글타래 전체에 태그 붙임
U               패턴과 일치하는 메일 복구
u               현재 메일 복구
v               첨부물 보여주기
x               바뀐 사항을 저장하지 않고 메뉴 나감
<Return>        메일 읽기
<Tab>           다음 읽지 않은 메일로 가기
@               글쓴이 이메일 주소 보기
$               변경 사항 저장
/               찾기
ESC /           반대 방향으로 찾기
^L              화면 정리하고 다시 그리기
^T              패턴과 일치하는 메일 태그 지움

2.3.1.1. 상태 표시 플래그 (flag)

다음은 각 메일의 상태를 표시해주는 플래그의 의미이다:

D

삭제됨 (삭제를 위해 표시됨)

d

첨부물을 포함하고 있는 메일로 삭제 표시됨

K

PGP 공개키를 포함

N

새 메일

O

오래된 메일

P

PGP 암호화된 메일

r

답장을 보낸 메일

S

PGP 서명된 메일로, 성공적으로 서명이 확인이 됨

s

PGP 서명된 메일

!

중요 메일

*

태그

몇가지 상태 플래그는 끄거나 켤수 있다.

  • set-flag (기본: w)

  • clear-flag (기본: W)

또한, 다음 플래그는 각 메일의 주소에 따라 반영되며, to-chars 변수를 사용하여 바꿀수 있다.

+       당신에게만 보내진 메일
T       여러명에게 보내지거나 cc 에 다른 메일주소가 있는 경우
C       cc 로 보내진 메일
F       당신이 보낸 메일
L       가입된 메일링 리스트에서 보내진 메일

2.3.2. 페이저 (Pager)

기본적으로 mutt은 메일 본문을 표시하는데 내장된 페이저를 사용하게 된다. 이 내장 페이저는 less와 흡사하다.

<Return>        한줄 아래로
<Space>         다음 페이지 (메일의 끝부분일 경우 다음 메일로 이동)
-               이전 메일로
n               다음 찾기
S               인용문 다음으로 넘어가기
T               인용문의 표시 상태 바꾸기
?               도움말 보기
/               정규 표현식을 이용해 검색
ESC /           정규 표현식을 이용해 역순 검색
\               검색 패턴 컬러링 선택
^               메일의 처음으로 이동
$               메일의 끝으로 이동

인덱스(index)에서의 기능들이 역시 페이저에서도 작동하는데, 예를 들어 delete-message(메일 삭제) 나 copy-message(메일 복사)등이다. (이것은 내장 페이저를 사용할 때의 이점이다.)

또한 내장된 페이저는 몇가지 부가적인 기능을 지원하다. 첫번째는 ``표준'' nroff sequence가 메일 본문에 사용될 경우 이것을 번역해서 볼드, 밑줄 글자들을 그려낸다. 이것은 터미날의 지원을 필요로 하며, 만약 지원하지 않는다면 이것들을 위해서 색(color)을 지정해 줄수 있다.

또한 내장 페이저는 ANSI escape sequence를 지원하여 글자의 속성을 바꾸는 것이 가능하다. Mutt은 이것을 해당 색과 글자의 속성으로 번역한다. mutt이 지원하는 ANSI sequence:

ESC [ Ps;Ps;Ps;...;Ps m
Ps 는
0    모든 속성 끔
1    볼드
4    밑줄
5    깜박임
7    Reverse video 켬
3x   전경 색 x
4x   배경 색 x

색
0    검정
1    빨강
2    초록
3    노랑
4    청색
5    진홍
6    청록
7    백색

Mutt에서 이 속성들은 text/enriched 메세지를 처리하는데 사용하며, 또한, 외부 MIME 자동보기 스크립트를 위한 하이라이팅(highlighting) 목적으로도 사용된다.

2.3.3. 글타래 모드

메일이 thread(글타래)모드로 정렬(sort)되었을 경우, 인덱스와 페이저 모드에서 몇가지 추가적인 기능이 있다.

^D      delete-thread           현재 글타래의 모든 메일 삭제
^U      undelete-thread         현재 글타래의 모든 메일 복구
^N      next-thread             다음 글타래로 이동
^P      previous-thread         이전 글타래로 이동
^R      read-thread             현재 글타래를 읽은 것으로 표시
ESC d   delete-subthread        부속 글타래의 모든 메세지 지움
ESC u   undelete-subthread      부속 글타래의 모든 메세지 복구하기
ESC n   next-subthread          다음 부속 글타래로 이동
ESC p   previous-subthread      이전 부속 글타래로 이동
ESC r   read-subthread          현재 부속 글타래에 읽은 표시하기
ESC t   tag-thread              현재 글타래에 태그 붙임
ESC v	collapse-thread		현재 글타래 펴기/접기
ESC V	collapse-all		모든 글타래들 펴기/접기
P       parent-message          글타래의 부모 메세지로 이동

글타래는 접거나 펼수 있는데, 접었을 때에는 그 글타래의 첫번째 메일만 표시되고 나머지 메일들은 숨겨지게 된다. 이것은 글타래에 매우 많은 메일이 포함되어 있을때 유용하게 사용될 수 있다.

Tip: %M 을 index-format 변수에서 참고해라. 예를 들어 index-format을 "%?M?(#%03M)&(%4l)?" 와 같이 설정하면 글타래에 몇개의 메일이 포함되어 있는지 표시해준다.

참고: strict-threads.

2.3.4. 그밖의 기능

create-alias (기본: a)

새로운 알리아스를 만드는 것은 현재 메일의 주소나 새로운 메일 주소를 추가할때 사용된다. 편집이 끝나면 alias-file변수에 정의된 파일에 alias가 추가된다.

주의: alias-file 변수를 사용할때에는 source변수와 함께 사용 되어야 한다.

check-traditional-pgp (기본: ESC P)

이 기능은 전통적인(MIME 이 아닌) PGP 서명/암호화된 메일을 찾아준다. 기술적으로, 이 기능은 PGP 데이타를 가지고 있는 메일의 MIME 내용의 타입을 일시적으로 바꾼다. edit-type 또한 비슷한 역할을 한다.

display-toggle-weed (기본: h)

메일 헤더를 보여주거나 숨긴다. ignore 참고.

edit (기본: e)

(인덱스와 페이저 모드에서 가능) 현재 메일을 메일함에 저장된 상태 그대로 수정할 수 있게 해준다. 수정이 끝나면 현재 메일함에 저장되며 원본 메일은 삭제 표시된다.

edit-type (기본: ^E 첨부물 메뉴, 페이저, 인덱스, ^T 작성 메뉴)

첨부물의 유형을 수정할때 사용한다.

enter-command (기본: ``:'')

설정파일에서 사용할 수 있는 명령들을 직접 입력할때 사용된다. 일반적으로 변수의 설정을 확인하거나 macro를 mutt 실행중에 바꿀때 사용할 수 있다.

extract-keys (기본: ^K)

현재 또는 태그한 메일에서 PGP 공개 열쇠를 추출하여 공개 열쇠 ring에 추가 한다.

forget-passphrase (기본: ^F)

PGP 암호구문(passphrase)을 메모리에서 삭제한다. 암호를 잘못 입력했을때 유용하다.

list-reply (기본: L)

지정된 메일링 리스트로 답장하기, 현재 메일에 포함된 이메일 주소가 lists에 지정된 메일링 리스트 주소와 일치하면 메일링 리스트로 답장을 보낸다.

pipe-message (기본: |)

현재 메일이나 태그된 메일을 외부 명령어로 연결(pipe)할때 쓴다. 관련 변수인 pipe-decode, pipe-split, pipe-sep, wait-key 를 참조.

resend-message (기본: ESC e)

메일 다시 보내기, 현재 메일을 템플레이트로 새로운 메일을 보낸다. 이 기능은 MIME 메일을 포워딩하면서 원하는 데로 수정하여 보낼때 편리하게 사용될 수 있다. 이때 포함되는 메일의 헤더는 weed에 의해 결정된다. 이 기능은 첨부물 메뉴에서도 가능하다.

shell-escape (기본: !)

하부 쉘 실행하기 (wait-key 변수로 명령 실행후 상태를 조절할 수 있다).

toggle-quoted (기본: T)

인용문 보기/숨기기. 이때 인용문의 인식은 quote-regexp 변수에 의해 결정된다.

skip-quoted (기본: S)

페이저에서 인용문을 무시하고 메일 본문의 내용을 첫번째 줄에 표시한다.

2.4. 메일 보내기

다음의 키들이 메일을 보내기 위해 사용된다.

m       compose         메일 작성하기
r       reply           답장 작성
g       group-reply     모든 수신자에게 답장
L       list-reply      메일링 리스트로 답장
f       forward         메일 포워딩
b       bounce          메일 전달 (바운스,bounce,remail)
ESC k   mail-key        PGP 공개 열쇠 보내기

메일 전달과 포워딩에 관한 자세한 것은 forwarding-mail을 참조하라.

기본적으로 mutt은 메일 작성과 답장, 포워딩시에 수신자(To:)와 제목(Subject:)를 먼저 물어 보는데, 이것은 askcc, askbcc, autoedit, fast-reply 변수들로 조정이 가능하다.

다음, 메일 본문의 편집은 editor 에 지정된 편집기가 사용된다(기본은 vi).

edit-headers가 설정된 경우에는 메일의 헤더를 편집할 수 있으며, 관련 변수로는 attribution, indent-string, post-indent-string을 사용할 수 있다.

메일 포워딩시에 mime-forward가 설정되어 있을 경우 원본은 첨부물로 보내지게 된다. signature가 설정되어 있는 경우 메일에 추가된다.

메일 본문 작성이 끝나면 메일 작성 메뉴(compose)로 돌아오게 되며 다음과 같은 명령을 사용할 수 있다:

a       attach-file             첨부물 추가
A	attach-message		현재 메일에 다른 메일을 첨부물로 추가
ESC k   attach-key              PGP 공개 열쇠 붙이기
d       edit-description        첨부물 설명 수정
D       detach-file             첨부물 삭제
t       edit-to                 To 수정
ESC f   edit-from               From 수정
r       edit-reply-to           Reply-To 수정
c       edit-cc                 Cc 수정
b       edit-bcc                Bcc 수정
y       send-message            메일 보내기
s       edit-subject            제목 수정
f       edit-fcc                복사본을 저장할 메일함 지정
p       pgp-menu                PGP 옵션 고르기 (``i'' 버전만 해당)
P       postpone-message        현재 메일를 저장후 나중에 보냄
q       quit                    메일 보내기 취소
w	write-fcc		메일 저장
i       ispell                  ispell로 스펠링 검사 (ispell이 있는 경우)
^F      forget-passphrase       메모리에서 PGP 암호 문구 지움

참고: 현재 메일에 다른 메일을 첨부할때는 특정 메일함을 선택한후 첨부할 메일에 태그를 하면 된다.

2.4.1. 메일 헤더 수정하기

보내는 메일의 헤더를 수정하여 다음 두가지의 특별한 목적으로 사용할 수 있다.

Fcc: 파일 이름 이것은 작성 메뉴에서 edit-fcc 와 같은 기능(복사본을 저장할 파일)을 한다.

Attach: 파일 이름 [ 설명 ] 첨부할 파일의 이름과 설명을 직접 지정해 줄수도 있다.

답장의 헤더에서 In-Reply-To: 헤더를 삭제할 경우 mutt은 References: 헤더를 자동으로 추가하지 않게되므로, 이것은 새로운 글타래를 만들게 된다.

edit-headers 참고.

2.4.2. PGP와 Mutt

PGP 사용을 원한다면, 다음과 같이 지정이 가능하다.

Pgp: [ E | S | S<id> ]

``E'' 암호화, ``S'' 서명됨, `S<id>'' id의 pgp 열쇠 (이것은 pgp-sign-as변수로 설정이 가능하다).

mutt에서 메일을 PGP 암호화 하여 보낼때 어떤 pgp 열쇠를 사용할 것인지 물어보는 과정은 보통 수신자의 이메일 주소를 인증된 ID 에서 찾지 못하는 경우이다.

또한, 상황에 따라 다른 pgp 열쇠를 사용해야 할 경우에는 메일 보내기 메뉴에서 (기본: p 와 a)로 pgp 열쇠를 고를수 있다. 취소는 ^G 로 한다.

원하는 pgp 열쇠를 고르면 메일은 선택된 공개 열쇠를 사용하여 암호화되어 보내진다.

pgp 열쇠 고르기 메뉴 (pgp-entry-format변수 참고)에서 보여지는 pgp 열쇠 목록은 각 열쇠들의 상태를 보여주는데 다음과 같은 플래그를 가질수 있으며, 의미는 다음과 같다.

%f (플래그 필드):
R            취소된(revoked)된 pgp 열쇠로 사용할 수 없음
X            유효 기간이 지난 pgp 열쇠로 사용할 수 없음
d            사용할 수 없도록 표시됨
c            인식하지 못하는 self-signature 패킷이 있음

%c (능력 필드)는 두개의 문자로 표시된다:

(- 마이너스 기호) 암호화에 사용될 수 없는 pgp 열쇠

(. 마침표) 유저 ID중 서명열쇠로 표시되었지만, 암호화에 사용할 수 있는 pgp 열쇠.

(e) pgp 열쇠가 암호화에 사용될 수 있음.

두번째 문자는 pgp 열쇠의 서명 가능성을 보여준다:

(- 마이너스 기호) 서명 할 수 없음

(. 마침표) 유저 ID중에서 서명열쇠로 표시됨.

(s) 서명 가능한 pgp 열쇠.

마지막으로 %t 필드는 인증 여부를 보여준다.

(?) 인증되지 않음, (-) 는 신뢰할 수 없는 조합, 공백은 부분적으로 신뢰되는 조합으로 표시됨, (+) 는 완전히 인증된 것을 뜻한다.

2.4.3. mixmaster를 통한 익명 메일 보내기

mutt은 Mixmaster와 같이 사용하도록 설정될 수 있다. Mismaster는 remailer 체인을 사용하여 익명 메일을 보내는데 사용된다. mutt이 지원하는 mixmaster 버전은 2.04 와 2.03이다.

이것을 사용하기 위해서는 몇가지 제한점이 있는데, 가장 중요한 것은 CcBcc 헤더를 사용할 수 없다는 것이다. mutt이 mixmaster를 사용하도록 하기 위해서 compose 메뉴상의 mix 기능을 사용해서 remailer 체인을 선택해야 한다.

체인 선택 화면은 둘로 나눠지며, 위쪽에는 사용할 수 있는 remailer의 목록이 표시되고, 아래쪽에는 현재 선택된 체인이 표시된다.

체인의 사용은 chain-prevchain-next 기능으로 조정할 수 있으며, 각각 왼쪽/오른쪽 화살표 키와 hl키가 기본값이다. remailer을 현재 체인에 넣기 위해 서는 insert을 사용한다. remailer의 추가는 select-entryappend가 사용된다.

remailer마다 서로 다른 기능을 가지고 있는데 이것은 remailer 메뉴의 %c 값으로 표시된다 (mix-entry-format를 참고). 자세한 기능들은 mixmaster 문서를 참고하라.

2.5. 메일 포워딩과 바운스

바운싱과 포워딩은 받은 메일을 다른 수신인에게 보내는 것이다.

메일을 바운스 할때는 sendmail명령을 사용해서 원본의 수신자가 새로 지정한 수신인인 것처럼 보내지며, 포워딩은 원본을 수정하거나 자신의 글을 추가할때 사용한다.

다음과 같은 키가 기본 설정이다:

f       forward         포워드
b       bounce          전달 (bounce,remail)

포워딩은 원본 메세지를 새 메일의 본문으로 사용하거나 MIME 첨부물로 보낼수 있다. (이것은 mime-forward 변수에 의해 결정된다.)

첨부물의 디코딩은 forward-decodemime-forward-decode 변수로 조절할 수 있다.

포워딩 메일의 형식은 내용에 따라 달라질수 있으며, mime-forward 변수의 값은 quadoption(yes,no,ask-yes/no)이 될 수 있다.

또한 포함되는 원본 메일의 헤더는 weed 변수가 적용된다 (mime-forward로 보내지지 않을때만 해당).

포워딩하는 메일은 일반적인 메일 작성이나 답장 보내기와 같은 절차를 거친다.

2.6. 발송 연기

이미 작성한 메일의 발송을 미룰때 사용되는 기능이다. 발송이 연기된 메일과 첨부물은 postponed 변수에 설정한 메일함에 저장되며, 필요할때 다시 불러 쓸수 있다.

발송 연기된 메일을 다시 불러오는 방법은 mutt를 ``-p'' 옵션을 주고 실행하거나 메일 작성 메뉴에서는 mutt이 발송 연기된 메일을 불러올것인지 자동적으로 물어볼 것이다. 발송 연기된 메일이 하나 이상일때는 어떤 메일을 불러올것인지 선택할 수 있다.

주의: 발송 연기된 메일이 답장일 경우, 원본 메일의 상태는 답장이 보내지기 전까지 변하지 않으며, 원본이 위치한 메일함에서 보내져야만 상태가 업데이트 된다.

postpone 변수 참고.