I'm using GNUS to access a bunch of IMAP servers. When composing new messages it would be nice to have access to the companies ldap server for autocompletion on address headers TO/CC/BCC. Is this possible, and if, how?

  • Here are some patches that try to simplify EUDC configuration.
    – legoscia
    Commented Nov 17, 2014 at 15:45
  • @legoscia this looks great; time to compile master again already? ;-)
    – user295
    Commented Nov 17, 2014 at 23:35

1 Answer 1


[Update per comments]

Disclaimer: I'm not using EUDC or LDAP at this time, thus I have no current setup of it.

I've had success with EUDC in the past, it wasn't complicated to setup with autocompletion.

First, I copied exactly the configuration described in the EUDC wiki page. The only thing that I recall being an issue was making sure that I had the right LDAP base, address and binddn fields setup.

I ended up setting credentials via M-x customize-group as I far as I know.

I then replaced all the related server fields with my configuration (Copying wiki stuff here, just for inline reference...).

(require 'ldap)
(require 'eudc)

(setq eudc-default-return-attributes nil
      eudc-strict-return-matches nil)

(setq ldap-ldapsearch-args (quote ("-tt" "-LLL" "-x")))
(setq eudc-inline-query-format '((name)
                                 (firstname name)

(setq ldap-host-parameters-alist
      (quote (("your_server" base "ou=addressbook,dc=your_dc_here,dc=fr"
               binddn "cn=admin,dc=your_dc_here,dc=fr"
               passwd "your_password"))))

(eudc-set-server "your_server" 'ldap t)
(setq eudc-server-hotlist '(("your_server" . ldap)))
(setq eudc-inline-expansion-servers 'hotlist)

(defun enz-eudc-expand-inline()
  (move-end-of-line 1)
  (insert "*")
  (unless (condition-case nil
            (error nil))
    (backward-delete-char-untabify 1))

;; Adds some hooks

(eval-after-load "message"
  '(define-key message-mode-map (kbd "TAB") 'enz-eudc-expand-inline))
(eval-after-load "sendmail"
  '(define-key mail-mode-map (kbd "TAB") 'enz-eudc-expand-inline))
(eval-after-load "post"
  '(define-key post-mode-map (kbd "TAB") 'enz-eudc-expand-inline))
  • 1
    Please ellaborate on how you set it up/what you have as your configuration. Link only answers are not recommended because the link can change in the future. Commented Oct 30, 2014 at 15:41
  • The linked config does not work for me (with the relevant parts filled in with correct values); the paramters used directly with ldapsearch at the commandline gets results, emacs apparently does not even try something; is there proper documentation somewhere?
    – user295
    Commented Oct 30, 2014 at 15:59
  • I renounce anything I said -- it works now; somewhere in my attempts to get it working I added "scope 'subtree" according to the docs for other client-systems -- that got in the way; all I had to add was "-ZZ" to the ldap-ldapsearch-args for TLS.
    – user295
    Commented Oct 30, 2014 at 16:16

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.