unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Reiner Steib <reinersteib+gmane@imap.cc>
Subject: Re: How do I check if the format of an email address is valid?
Date: Fri, 31 Mar 2006 01:30:02 +0200	[thread overview]
Message-ID: <v94q1fh5ol.fsf@marauder.physik.uni-ulm.de> (raw)
In-Reply-To: 442C5AD3.3090004@student.lu.se

On Fri, Mar 31 2006, Lennart Borgman wrote:

> Pascal Bourguignon wrote:
>> Lennart Borgman <lennart.borgman.073@student.lu.se> writes:
>>> - `message-valid-fqdn-regexp' (which is copied to
>>> gnus-button-valid-local-part-regexp') 

You meant `gnus-button-valid-fqdn-regexp' here.

>>> has a list of TLD:s. Is this really wise?

Consider the purpose of these variables in Gnus:

  `message-valid-fqdn-regexp' is used to exclude obvious bogus system
  names from being used as the domain part in a Message-ID.

  `gnus-button-valid-fqdn-regexp' is used when creating buttons
  (clickable links) when a mail address or a Message-ID appears in the
  body of mail/usenet articles: Say null123@marauder.physik.uni-ulm.de
  or reiner.steib@gmx.de etc.  The regexp should catch virtually all
  valid addresses without generating too many false positives,
  e.g. TeX code \def\foo@randomstuff.bar{} or similar.

If we miss some new TLD, it's not critical and the user can easily add
it or upgrade Gnus.

>>> I guess there will be new TLD:s.  (In fact there may already be
>>> some that are not in this list.)

Is anyone aware of any missing TLDs?

(defcustom message-valid-fqdn-regexp
  (concat "[a-z0-9][-.a-z0-9]+\\." ;; [hostname.subdomain.]domain.
	  ;; valid TLDs:
	  "\\([a-z][a-z]" ;; two letter country TDLs
	  "\\|biz\\|com\\|edu\\|gov\\|int\\|mil\\|net\\|org"
	  "\\|aero\\|coop\\|info\\|name\\|museum"
	  "\\|arpa\\|pro\\|uucp\\|bitnet\\|bofh" ;; old style?
	  "\\)")
  "Regular expression that matches a valid FQDN."
  ;; see also: gnus-button-valid-fqdn-regexp
  :version "22.1"
  :group 'message-headers
  :type 'regexp)
     
>> You can customize the variable!

BTW, the tin newsreader even hard-codes a matrix of (in)valid
two letter country domains. The user/admin has to recompile to add new
domains.  IIRC it's used when checking for a valid FQDN.

> This argument can be used in the reverse direction too. Do most
> users really gain something from the list of known TLD:s in the
> regexp?

For the purpose in Gnus: Yes, IMHO.  What would you suggest to use
instead?

>>> - It is maybe a pitty that you have to load those big modules (message
>>> and gnus) just to get the patterns.
>> You only need to (require 'message) to get message-valid-fqdn-regexp.
[...]
>> And you only need to (require 'gnus-art) to get the other variables.

Well, `gnus-art.el' will in turn load "half of the moon": ;-)

,----[ emacs -Q -f ielm ]
| ELISP> (length features)
| 76
| ELISP> (require 'gnus-art)
| gnus-art
| ELISP> (length features)
| 130
`----

,----[ emacs -Q -f ielm ]
| ELISP> (length features)
| 76
| ELISP> (require 'message)
| message
| ELISP> (length features)
| 107
`----
   
> I just want to check the format of email addresses entered on a html page.

And you'll post-process it using Emacs?

>>> And then I can not stop myself from wondering if there really are any
>>> format of email addresses that asures that conforming addresses are
>>> actually existing email adresses ;-)
>> Of course not.    
> And I will probably never learn the fine art of joking in email messages ;-)

I wasn't joking. :-)  Of course not from the format, but...

Basically you need to do something like "host -t mx" (using
`dig.el'?), connect to the smtp port, send "RCPT TO:" and parse the
output ("user unknown"?).  But I'm not sure if this still works
nowadays.

Bye, Reiner.
-- 
       ,,,
      (o o)
---ooO-(_)-Ooo---  |  PGP key available  |  http://rsteib.home.pages.de/

  reply	other threads:[~2006-03-30 23:30 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-30 12:35 How do I check if the format of an email address is valid? Lennart Borgman
2006-03-30 14:16 ` Reiner Steib
2006-03-30 21:00   ` Lennart Borgman
     [not found]   ` <mailman.196.1143752412.2481.help-gnu-emacs@gnu.org>
2006-03-30 21:24     ` Pascal Bourguignon
2006-03-30 22:25       ` Lennart Borgman
2006-03-30 23:30         ` Reiner Steib [this message]
2006-03-31 11:26           ` Lennart Borgman
2006-03-31 14:05             ` Reiner Steib
2006-03-31 21:02               ` Lennart Borgman
     [not found] <mailman.169.1143722125.2481.help-gnu-emacs@gnu.org>
2006-03-31 13:33 ` Mathias Dahl
2006-04-02 12:20   ` Xavier Maillard
2006-04-02 13:02     ` Lennart Borgman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=v94q1fh5ol.fsf@marauder.physik.uni-ulm.de \
    --to=reinersteib+gmane@imap.cc \
    --cc=Reiner.Steib@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).