20 июл. 2007 г.

Настройка Emacs для отправки почты через Gmail

Вчера приступил к настройке давно задуманной вещи, которая так и не завелась у меня в Emacs под Windows - скрещиванию Gnus и Gmail, чтобы можно было читать рассылки в удобном емаксовом интерфейсе. Вчера удалась только одна часть - настроил отправку почты через Gmail, а вот скачивание почты через pop3 так и не заработало - сегодня буду пробовать еще раз, и может быть настрою fetchmail, для автоматического вытягивания почты (что не хочется, ибо он будет вытягивать почту и тогда, когда меня нет у компа и имею доступ только через web интерфейс). Настройка отправки почты через Gmail описана в нескольких блогах, но они все имели одну и ту же ошибку - не указывали один пакет (starttls), что не позволило сразу отправку. В общем, для отправки почты нужно сделать следующее:
  1. поставить gnutls для того, чтобы smtpmail мог выполнить команду STARTTLS
  2. В .gnus написать следующее:

    (setq user-mail-address "my-email@gmail.com")
    (setq send-mail-function 'smtpmail-send-it
    message-send-mail-function 'smtpmail-send-it
    smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))
    smtpmail-auth-credentials '(("smtp.gmail.com" 587 "my-email@gmail.com" nil))
    smtpmail-default-smtp-server "smtp.gmail.com"
    smtpmail-smtp-server "smtp.gmail.com"
    smtpmail-smtp-service 587
    smtpmail-debug-info t)
    (require 'starttls)
    (require 'smtpmail)
  3. протестировать отправку, при отправке письма, smtpmail спросит пароль, и отправит письмо. Поскольку в данном конфиге включена отладка, то вся SMTP сессия будет выводиться в буфер с именем *trace of SMTP ...*
Что означает каждая строка в приведенном конфиге?:
  • первая строка задает адрес пользователя;
  • вторая и третья строка заставляют отправлять почту через SMTP, а не через локальный почтовый сервер;
  • четвертая и пятая строки задают для какого сервера надо использовать STARTTLS, и какие данные пользователя будут указанны для данного сервера. Если не боитесь, то можете указать пароль сразу в данном конфиге, или сохранить его в файле ~/.authinfo и тогда для smtpmail-auth-credentials можно записать (expand-file-name "~/.authinfo") вместо того, что там сейчас написано;
  • 6,7 и 8 строки задают имя и порт сервера, через который будет производиться отправка писем;
  • 9-я строка включает отладку, что приводит к выводу SMTP сессии в; отдельный буфер. Если все будет работать нормально, то позже можно эту строку удалить
  • 10-я и 11-я строки загружают нужные пакеты.
Вот и все :-) Оригинал статьи - тут.

1 комментарий:

Павел Вязовой комментирует...

GMAIL IMAP подружили с кириллицей, поэтому я использую его с gnus.
Настроить легко:
(setq gnus-select-method '(nnimap "gmail"
(nnimap-address "imap.gmail.com") (nnimap-server-port 993)
(nnimap-stream ssl)))

Далее в ~/.authinfo одной строчкой:
machine imap.gmail.com login login@gmail.com password пароль port 993