help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnus and bbdb: Yahoo groups DMARC-related changes to email From header.


From: Patricia J. Hawkins
Subject: gnus and bbdb: Yahoo groups DMARC-related changes to email From header.
Date: Fri, 23 May 2014 15:32:37 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

Hello all,

Yahoogroup email header changes are driving me a little nuts.  I see
someone asked about this, but the answer he got (delete junk addresses)
wasn't useful to me.

I subscribe to a Yahoo group where I want to capture new members and changed
email address and record them in my bbdb.

The incoming From: header looks like this:

  From: "Susan Subscriber ssubscriber@ssnewaddress.com [Listerines]" 
<Listerines@yahoogroups.com>

Looks like "bbdb-canonicalize-net-hook" is applied too late to do any
good; at that point the user name and email have already been split out as:
("Susan Subscriber" "Listerines@yahoogroups.com")

but should be:

("Susan Subscriber" ssubscriber@ssnewaddress.com)


The extraction seems to be within bbdb-get-addresses, using the function
that's passed in as get-header-content-function

Haven't tracked down get-header-content-function yet.

Anyone care to give me a hand here?  TIA!


Here's the backtrace of my brief, revealing experiment with 
bbdb-canonicalize-net-hook:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  
string-match("\\`\\(\".*\".\\).*\\.\\([^[]*<Listerines@yahoogroups.com>\\)\\'" 
nil)
  (cond ((string-match 
"\\`\\(\".*\".\\).*\\.\\([^[]*<Listerines@yahoogroups.com>\\)\\'" addr) 
(substring addr (match-beginning 1) (match-end 1))) (t addr))
  (lambda (addr) (cond ((string-match 
"\\`\\(\".*\".\\).*\\.\\([^[]*<Listerines@yahoogroups.com>\\)\\'" addr) 
(substring addr (match-beginning 1) (match-end 1))) (t addr)))(nil)
  run-hook-with-args((lambda (addr) (cond ((string-match 
"\\`\\(\".*\".\\).*\\.\\([^[]*<Listerines@yahoogroups.com>\\)\\'" addr) 
(substring addr (match-beginning 1) (match-end 1))) (t addr))) nil)
  bbdb-canonicalize-address("Listerines@yahoogroups.com")
  bbdb-annotate-message-sender(("Susan Subscriber" 
"Listerines@yahoogroups.com") t nil nil)
  byte-code("\211A@)\204\306\202\357\n\307=\203,\310\311\206\f\311=?\205'
\205'\312$C\202\357\n\313=\205\357\314\315\211A@)!\316Q\311\306\317 
\306 
!\203\352@\203\234\320H\306\"\211#\203\217#\203\226\"\204\226\321#@\"\"#A\211#\204u\202\226\321\322\"\"\"*\203\332\204\341\320H\306\"\211#\203\315#\203\324\"\204\324\321#@\"\"#A\211#\204\263\202\324\321\322\"\"\"*\203\341!B!A\211\204Y!\237.$%T%&\204#'\204#
\323=\204#%\324\246\325U\203#\326\327\n%($)\330)!\210)\331\325!\210\306\207" 
[bbdb-address x bbdb-update-records-mode auto-create-p offer-to-create 
bbdb-offer-to-create nil annotating bbdb-annotate-message-sender t 
bbdb-prompt-for-create searching "^" regexp-quote "$" bbdb-search-invert-p 6 
string-match "" q 5 0 format "Hit C-g to stop BBDB from %s.  %d of %d addresses 
processed." message sit-for bbdb-case-fold-search net bbdb-records record 
invert records case-fold-search matches done rest-of-nets hits 
processed-addresses bbdb-silent-running bbdb-gag-messages addrslen mess] 7)
  bbdb-update-records(((authors "From" ("Susan Subscriber" 
"Listerines@yahoogroups.com")) (recipients "To" (nil 
"Listerines@yahoogroups.com"))) nil nil)
  (setq records (bbdb-update-records (bbdb-get-addresses 
bbdb-get-only-first-address-p (or (bbdb/gnus-ignored-from-addresses) 
bbdb-user-mail-names) (quote gnus-fetch-field)) bbdb/news-auto-create-p 
offer-to-create))
  (let ((bbdb-update-records-mode (or bbdb/gnus-update-records-mode 
bbdb-update-records-mode))) (setq records (bbdb-update-records 
(bbdb-get-addresses bbdb-get-only-first-address-p (or 
(bbdb/gnus-ignored-from-addresses) bbdb-user-mail-names) (quote 
gnus-fetch-field)) bbdb/news-auto-create-p offer-to-create)))
  (if cache (setq records (if bbdb-get-only-first-address-p (list (car cache)) 
cache)) (let ((bbdb-update-records-mode (or bbdb/gnus-update-records-mode 
bbdb-update-records-mode))) (setq records (bbdb-update-records 
(bbdb-get-addresses bbdb-get-only-first-address-p (or 
(bbdb/gnus-ignored-from-addresses) bbdb-user-mail-names) (quote 
gnus-fetch-field)) bbdb/news-auto-create-p offer-to-create))) (if (and 
bbdb-message-caching-enabled msg-id) (bbdb-encache-message msg-id records)))
  (save-excursion (set-buffer gnus-article-buffer) (if (and msg-id (not 
bbdb/gnus-offer-to-create)) (setq cache (bbdb-message-cache-lookup msg-id))) 
(if cache (setq records (if bbdb-get-only-first-address-p (list (car cache)) 
cache)) (let ((bbdb-update-records-mode (or bbdb/gnus-update-records-mode 
bbdb-update-records-mode))) (setq records (bbdb-update-records 
(bbdb-get-addresses bbdb-get-only-first-address-p (or 
(bbdb/gnus-ignored-from-addresses) bbdb-user-mail-names) (quote 
gnus-fetch-field)) bbdb/news-auto-create-p offer-to-create))) (if (and 
bbdb-message-caching-enabled msg-id) (bbdb-encache-message msg-id records))))
  (let ((bbdb-update-records-mode (or bbdb/gnus-update-records-mode 
bbdb-update-records-mode)) (bbdb/gnus-offer-to-create offer-to-create) (msg-id 
(bbdb/gnus-get-message-id)) records cache) (save-excursion (set-buffer 
gnus-article-buffer) (if (and msg-id (not bbdb/gnus-offer-to-create)) (setq 
cache (bbdb-message-cache-lookup msg-id))) (if cache (setq records (if 
bbdb-get-only-first-address-p (list (car cache)) cache)) (let 
((bbdb-update-records-mode (or bbdb/gnus-update-records-mode 
bbdb-update-records-mode))) (setq records (bbdb-update-records 
(bbdb-get-addresses bbdb-get-only-first-address-p (or ... bbdb-user-mail-names) 
(quote gnus-fetch-field)) bbdb/news-auto-create-p offer-to-create))) (if (and 
bbdb-message-caching-enabled msg-id) (bbdb-encache-message msg-id records)))) 
records)
  bbdb/gnus-update-records(nil)
  (let ((bbdb-gag-messages t) (records (bbdb/gnus-update-records 
offer-to-create)) (bbdb-electric-p nil)) (if bbdb-use-pop-up (progn (let ((b 
(current-buffer))) (if records (bbdb-pop-up-bbdb-buffer (function (lambda ... 
...))) (or bbdb-inside-electric-display (not (get-buffer-window 
bbdb-buffer-name)) (let (w) (delete-other-windows) (gnus-configure-windows ...) 
(if ... ...)))) (set-buffer b)) (if records (bbdb-display-records records 
bbdb-pop-up-display-layout)))) records)
  bbdb/gnus-pop-up-bbdb-buffer()
  run-hooks(gnus-article-prepare-hook)
  apply(run-hooks gnus-article-prepare-hook)
  gnus-run-hooks(gnus-article-prepare-hook)
  gnus-article-prepare(284761 nil)
  gnus-summary-display-article(284761)
  gnus-summary-next-article(t nil)
  gnus-summary-next-unread-article()
  call-interactively(gnus-summary-next-unread-article nil nil)
-- 
Patricia J. Hawkins



reply via email to

[Prev in Thread] Current Thread [Next in Thread]