LINUX.ORG.RU

GNUS: несколько почтовых адресов


0

0

Настраиваю почту в Gnus'е. Необходимо иметь возможность отправлять письма на два smtp-сервера (по выбору, с разными From, естественно). Содержимое dotgnus нашёл в гугле и содрал с него. При создании сообщения вызывается хук, который устанавливает настройки smtp по string-match с полем From. Проблема в том, что не могу придумать, как этот From задавать ДО создания сообщения. А так получается, что хук обрабатывает такой From, который установлен в user-mail-address.

Мой ~/.gnus

(setq gnus-outgoing-message-group "nnml:sent")

(setq gnus-secondary-select-methods '((nnml "")))

(setq user-mail-address "user@gmail.com")
(setq user-full-name "The User")

(setq gnus-posting-styles
      '(
	("^nnml.*xyz"
	 (address "user@xyz.ru"))
         ("^nnml.*gmail"
	 (name "The User")
	 (address "user@gmail.com"))))

(setq mail-sources
      '((file :path "/var/spool/mail/user")
        (pop :server "127.0.0.1"
	     :port 995
	     :user "user@gmail.com"
	     :connection ssl
	     :leave t)
        (pop :server "xyz.ru"
	     :port "pop3"
	     :user "user@xyz.ru"
	     :leave t)
	))


(defun fs-change-smtp ()
  "Change the SMTP server according to the current from line."
  (save-excursion
    (let ((from
           (save-restriction
             (message-narrow-to-headers)
             (message-fetch-field "from"))))
      (message "From is `%s', setting `smtpmail-smtp-server' to `%s'"
               from
               (cond
                ((string-match "user@gmail.com" from)
		 ;; Use stmp-auth
		 (message "Using smtp-auth")
		 ;; Sending mail
		 (setq smtpmail-starttls-credentials '(("127.0.0.1" 587 nil nil)))
		 (setq smtpmail-auth-credentials '(("127.0.0.1" 587 "user@gmail.com" nil)))
		 (setq smtpmail-default-smtp-server "127.0.0.1")
		 (setq smtpmail-smtp-server "")
		 (setq smtpmail-smtp-service 587))

		((string-match "user@xyz.ru" from)
		 (setq smtpmail-auth-credentials '(("xyz.ru" 25 "user@xyz.ru" nil)))
		 (setq smtpmail-default-smtp-server "xyz.ru")
		 (setq smtpmail-smtp-server "xyz.ru")
		 (setq smtpmail-smtp-service 25))
		(t
		 (error
		  (concat "Don't know which mail server to use for "
			  from))))))))

(add-hook 'message-setup-hook 'fs-change-smtp)
★★★★★

Сорри за кривое форматирование :) На всякий случай повторю:

Настраиваю почту в Gnus'е. Необходимо иметь возможность отправлять письма на два smtp-сервера (по выбору, с разными From, естественно). Содержимое dotgnus нашёл в гугле и содрал с него. При создании сообщения вызывается хук, который устанавливает настройки smtp по string-match с полем From. Проблема в том, что не могу придумать, как этот From задавать ДО создания сообщения. А так получается, что хук обрабатывает такой From, который установлен в user-mail-address.

mv ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.