chiark / gitweb /
Merge from disorder.dev.
[disorder] / lib / email.c
1 /*
2  * This file is part of DisOrder
3  * Copyright (C) 2008 Richard Kettlewell
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  * 
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  * 
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18
19 /** @file lib/email.c
20  * @brief Email addresses
21  */
22
23 #include "common.h"
24
25 #include "sendmail.h"
26
27 /** @brief Test email address validity
28  * @param address to verify
29  * @return 1 if it might be valid, 0 if it is definitely not
30  *
31  * This function doesn't promise to tell you whether an address is deliverable,
32  * it just does basic syntax checks.
33  */
34 int email_valid(const char *address) {
35   /* There must be an '@' sign */
36   const char *at = strchr(address, '@');
37   if(!at)
38     return 0;
39   /* There must be only one of them */
40   if(strchr(at + 1, '@'))
41     return 0;
42   /* It mustn't be the first or last character */
43   if(at == address || !at[1])
44     return 0;
45   /* Local part must be valid */
46   /* TODO */
47   /* Domain part must be valid */
48   /* TODO */
49   return 1;
50 }
51
52 /*
53 Local Variables:
54 c-basic-offset:2
55 comment-column:40
56 fill-column:79
57 indent-tabs-mode:nil
58 End:
59 */