- (let (from domain)
- (if wl-message-id-use-wl-from
- (if (and (setq from (wl-address-header-extract-address wl-from))
- (string-match "^\\(.*\\)@\\(.*\\)$" from))
- (setq domain (match-string 2 from))
- (error "Please set `wl-from' to get valid Message-ID string."))
- (setq domain
- (or wl-message-id-domain
- (if wl-local-domain
- (concat (system-name) "." wl-local-domain)
- (system-name)))))
- (unless (string-match "[^.]\\.[^.]" domain)
- (error "Please set `wl-local-domain' to get valid FQDN"))
- (if (string-match "@" domain)
- (error "Please remove `@' from `wl-message-id-domain'"))
- (if (string= wl-local-domain "localdomain")
- (error "Please set `wl-local-domain'"))
- (if (string= domain "localhost.localdomain")
- (error "Please set `wl-message-id-domain'")))
+ (when wl-insert-message-id
+ (let ((message-id (funcall wl-message-id-function))
+ domain)
+ (unless (string-match "^<\\([^@]*\\)@\\([^@]*\\)>$" message-id)
+ (cond
+ ((string-match "@" wl-message-id-domain)
+ (error "Please remove `@' from `wl-message-id-domain'"))
+ (t
+ (error
+ "Check around `wl-message-id-function' to get valid Message-ID string"))))
+ (setq domain (match-string 2 message-id))
+ (if (or (not (string-match "[^.]\\.[^.]" domain))
+ (string= domain "localhost.localdomain"))
+ (elmo-warning
+ "Please set `wl-message-id-domain' to get valid Message-ID string."))))