Emacs GNUS 관련 팁
Windows 환경의 GNUS에서 Gmail IMAP 구독하기
기본적인 내용은 다음 사이트에서 상세히 잘 설명하고 있다.
그러나 이 방법만으로는 Windows 환경에서 EMACS를 사용하는 사람들에게 2% 부족하다. 그래서 삽질 좀 한 끝에 Windows 환경을 위한 방법을 찾아냈다.
필요한 것들
EMACS 22.1 이상 - 그 이하 버전에서도 물론 되겠지만 직접 확인해보지 않았음)
GNUS 5.11 이상 - 이것은 ntemacs 22.1 버전에 기본으로 포함되어 있음)
Cygwin 배포판과 그 안에 포함된 OpenSSL - IMAP SSL 연결을 위해 꼭 필요함
설치 및 설정
Cygwin이 아직 설치되어 있지 않으면 cygwin을 설치하고, OpenSSL 패키지도 설치한다.
가장 먼저 Gmail 서비스를 위한 인증서를 설치해야 한다. 인증서가 없으면 SSL 인증에 실패한다. 인증서는 ~/.certs 폴더가 아닌, Windows 환경에서 적절히 참조 가능한 절대 경로에 배치시키는 것이 더 좋을 듯 하다. 예를 들면, C:\openssl\certs 같은...
인증서 설치 과정을 요약하면 다음과 같다.
적절한 곳에 certs 폴더를 만든다. 여기서는 C:\openssl\certs 라고 가정한다.
Cygwin shell 실행 상태에서 아래 4 번과 같이 실행해서 출력되는 내용 중 -----BEGIN CERTIFICATE-----와 -----END CERTIFICATE----- 라는 문장으로 둘러 싸인 부분을 그 문장까지 포함하여 복사한 다음 gmail.pem 파일로 certs 폴더 아래에 저장한다.
openssl s_client -connect smtp.gmail.com:995 -showcerts
그리고, 아래 6 번의 내용을 equifax.pem 파일로 certs 폴더 아래에 저장한다.
-----BEGIN CERTIFICATE-----
MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
-----END CERTIFICATE-----
마지막으로 Cygwin Shell에서 8 번과 같이 실행해준다.
c_rehash c:/openssl/certs/
홈 디렉토리에 있는 .gnus.el 파일을 연다. (없으면 새로 만든다.) 그리고 다음의 내용을 추가한다. 경우에 따라서 적절히 수정할 필요는 있을 것이다. 아래의 내용은 오직 Gmail IMAP 만을 사용할 경우에 대한 내용이므로...
;; cygwin exec path;; 실제 설치된 경로에 따라 적절히 수정해준다.
(if (not (member "C:/cygwin/bin/" exec-path))
(setq exec-path (cons "C:/cygwin/bin/" exec-path)))
;; 폴더 명이 iso-8859-1 인코딩이 아닐 경우를 위해
;; -> 폴더가 보이기는 하지만 한글이 깨지는 문제가 아직 있음
(setq imap-use-utf7 nil)
;; openssl은 반드시 cygwin에 포함된 것을 사용해야 함
;; - cygwin의 bin 폴더 내에 있는 openssl.exe 파일을 절대 경로로 기술해야 함
;; - Win32: certificates 경로는 절대 경로를 사용하는 편이 더 좋은 것 같음
(setq imap-ssl-program
'("C:/cygwin/bin/openssl.exe s_client -quiet -ssl3 -CApath c:/openssl/certs -connect %s:%p"
"C:/cygwin/bin/openssl.exe s_client -quiet -ssl2 -CApath c:/openssl/certs -connect %s:%p"))
(setq user-mail-address "my@email.address")
(setq user-full-name "My Name")
(setq gnus-select-method '(nnimap "gmail"
(nnimap-address "imap.gmail.com")
(nnimap-server-port 993)
; 로그인 정보 파일을 사용하여 자동 로그인 하고자 할 경우 사용
(nnimap-authinfo-file "~/.imap-authinfo")
(nnimap-stream ssl)))
위 코드 내용 중 파란 색 부분은 자동 로그인 설정을 사용할 경우 필요하다. 자동 로그인을 사용하지 않는다면 주석 처리해야 한다. 자동 로그인을 사용하기 위해서는 ~/.imap-authinfo 파일을 만들고 그 내용을 다음과 같이 채운다. MyEmailAddress와 MyPassword 부분은 자신의 것으로 적절히 대체하자. 이 내용은 한 줄로 구성되어야 하고 줄의 끝에 개행 문자가 포함되지 않아야 한다.
machine imap.gmail.com login MyEmailAddress password MyPassWord port 993
자, 이제 다 됐다. M-x gnus를 눌러 GNUS를 실행해보자.
^ 키를 눌러서 Server Browser(*Server* 라고 명명된 버퍼)로 들어갈 수 있다. 여기서 Gmail을 선택하면 Gmail 웹 상에서 지정했던 label이 구독할 수 있는 채널 형태로 보인다. u 키를 사용해서 구독할 채널을 선택/해제 할 수 있다.
유용한 팁
GNUS에서 [Gmail]/____ 그룹들 구독하기
GNUS에서 IMAP으로 Gmail을 구독해보면, 사용자가 직접 만든 label을 제외한 기본 IMAP 폴더들이 보이지 않는다. Outlook이나 Thunderbird 상에서 [Gmail]/All Mail 등과 같은 형식으로 보이는 바로 그 폴더들... 이 문제를 피해갈 수 있는 답을 GNUS 뉴스 그룹에서 발견할 수 있었다. 방법은 간단하다. Group Broswer(*Group* 이라고 명명된 버퍼)에서 S s 키를 누른 후 구독할 그룹 이름을 직접 입력하는 것이다.
예를 들어서 모든 메일을 보고자 하면 S s [Gmail]/All Mail 이라고 입력하면 된다. 이때 'All Mail' 사이의 공백은 그냥 입력되지 않으므로 C-q SPC 방식으로 입력해야 할 것이다.