Emacs GNUS 관련 팁


Windows 환경의 GNUS에서 Gmail IMAP 구독하기

기본적인 내용은 다음 사이트에서 상세히 잘 설명하고 있다.
그러나 이 방법만으로는 Windows 환경에서 EMACS를 사용하는 사람들에게 2% 부족하다. 그래서 삽질 좀 한 끝에 Windows 환경을 위한 방법을 찾아냈다.
 

필요한 것들

  • EMACS 22.1 이상 - 그 이하 버전에서도 물론 되겠지만 직접 확인해보지 않았음)
  • GNUS 5.11 이상 - 이것은 ntemacs 22.1 버전에 기본으로 포함되어 있음)
  • Cygwin 배포판과 그 안에 포함된 OpenSSL - IMAP SSL 연결을 위해 꼭 필요함
 

설치 및 설정

  1. Cygwin이 아직 설치되어 있지 않으면 cygwin을 설치하고, OpenSSL 패키지도 설치한다.
  2. 가장 먼저  Gmail 서비스를 위한 인증서를 설치해야 한다. 인증서가 없으면 SSL 인증에 실패한다. 인증서는 ~/.certs 폴더가 아닌, Windows 환경에서 적절히 참조 가능한 절대 경로에 배치시키는 것이 더 좋을 듯 하다. 예를 들면, C:\openssl\certs 같은...
    1. 인증서 설치 과정을 요약하면 다음과 같다.
    2. 적절한 곳에 certs 폴더를 만든다. 여기서는 C:\openssl\certs 라고 가정한다.
    3. Cygwin shell 실행 상태에서 아래 4 번과 같이 실행해서 출력되는 내용 중 -----BEGIN CERTIFICATE----------END CERTIFICATE----- 라는 문장으로 둘러 싸인 부분을 그 문장까지 포함하여 복사한 다음 gmail.pem 파일로 certs 폴더 아래에 저장한다.
    4. openssl s_client -connect smtp.gmail.com:995 -showcerts
    5. 그리고, 아래 6 번의 내용을 equifax.pem 파일로 certs 폴더 아래에 저장한다.
    6. -----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-----
    7. 마지막으로 Cygwin Shell에서 8 번과 같이 실행해준다.
    8. c_rehash c:/openssl/certs/
  3. 홈 디렉토리에 있는 .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)))

  4. 위 코드 내용 중 파란 색 부분은 자동 로그인 설정을 사용할 경우 필요하다. 자동 로그인을 사용하지 않는다면 주석 처리해야 한다. 자동 로그인을 사용하기 위해서는 ~/.imap-authinfo 파일을 만들고 그 내용을 다음과 같이 채운다. MyEmailAddressMyPassword 부분은 자신의 것으로 적절히 대체하자. 이 내용은 한 줄로 구성되어야 하고 줄의 끝에 개행 문자가 포함되지 않아야 한다.
    machine imap.gmail.com login MyEmailAddress password MyPassWord port 993
  5. 자, 이제 다 됐다. M-x gnus를 눌러 GNUS를 실행해보자.
  6. ^ 키를 눌러서 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 방식으로 입력해야 할 것이다.

Comments