Index: main/waeup.sirp/trunk/src/waeup/sirp/authentication.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/authentication.py	(revision 7220)
+++ main/waeup.sirp/trunk/src/waeup/sirp/authentication.py	(revision 7221)
@@ -84,5 +84,5 @@
 
     def __init__(self, name, password, title=None, description=None,
-                 roles = []):
+                 email=None, roles = []):
         self.name = name
         if title is None:
@@ -92,4 +92,5 @@
         self.title = title
         self.description = description
+        self.email = email
         self.setPassword(password)
         #self.setSiteRolesForPrincipal(roles)
Index: main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 7220)
+++ main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py	(revision 7221)
@@ -313,4 +313,5 @@
         name = data['name']
         title = data['title']
+        email = data['email']
         description = data['description']
         #password = data['password']
@@ -326,5 +327,5 @@
                 return
         try:
-            self.context.addUser(name, password, title=title,
+            self.context.addUser(name, password, title=title, email=email,
                                  description=description, roles=roles)
         except KeyError:
@@ -506,13 +507,11 @@
         msg['From'] = '%s <%s>' % (fullname,email)
 
-        # These parameters should be part of the portal configuration.
-        msg['To'] = 'contact@waeup.org'
-        msg['Subject'] = 'WAeUP Contact'
-        #server = smtplib.SMTP('smtp_server')
-        # Also connection details (username, passwords, host, port,
-        # etc.) should be settable somewhere.
-        # server.login('user_name','secret_password')
-        server = smtplib.SMTP('localhost')
-        server.sendmail(email,'contact@waeup.org',msg.as_string())
+        config = grok.getSite()['configuration']
+        msg['To'] = config.email_admin
+        msg['Subject'] = config.email_subject
+        server = smtplib.SMTP(config.smtp_server)
+        if config.smtp_requires_login:
+            server.login(config.smtp_username,config.smtp_password)
+        server.sendmail(email,config.email_admin,msg.as_string())
 
         server.quit()
Index: main/waeup.sirp/trunk/src/waeup/sirp/interfaces.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/interfaces.py	(revision 7220)
+++ main/waeup.sirp/trunk/src/waeup/sirp/interfaces.py	(revision 7221)
@@ -17,4 +17,5 @@
 ##
 import os
+import re
 from datetime import datetime
 from hurry.file.interfaces import IFileRetrieval
@@ -71,4 +72,16 @@
     )
 
+# Define a valiation method for email addresses
+class NotAnEmailAddress(schema.ValidationError):
+    __doc__ = u"Invalid email address"
+
+check_email = re.compile(
+    r"[a-zA-Z0-9._%-]+@([a-zA-Z0-9-]+.)*[a-zA-Z]{2,4}").match
+
+def validate_email(value):
+    if not check_email(value):
+        raise NotAnEmailAddress(value)
+    return True
+
 class FatalCSVError(Exception):
     """Some row could not be processed.
@@ -196,11 +209,21 @@
         description = u'Login name of user',
         required = True,)
+
     title = schema.TextLine(
         title = u'Name',
         description = u'Real name of user',
         required = False,)
+
     description = schema.Text(
         title = u'Description/Notice',
         required = False,)
+
+    email = schema.ASCIILine(
+        title = u'Email',
+        default = None,
+        required = False,
+        constraint=validate_email,
+        )
+
     roles = schema.List(
         title = u'Portal roles',
@@ -287,4 +310,41 @@
         default = [],
         )
+
+    email_admin = schema.ASCIILine(
+        title = u'Email',
+        default = 'contact@waeup.org',
+        required = False,
+        constraint=validate_email,
+        )
+
+    email_subject = schema.TextLine(
+        title = u'Subject of Email to Administrator',
+        default = u'SIRP Contact',
+        required = False,
+        )
+
+    smtp_server = schema.TextLine(
+        title = u'Adress of SMTP Server',
+        default = u'localhost',
+        required = False,
+        )
+
+    smtp_requires_login = schema.Bool(
+        title = u'Server requires login',
+        default = False,
+        )
+
+    smtp_username = schema.TextLine(
+        title = u'Username for SMTP Account',
+        default = None,
+        required = False,
+        )
+
+    smtp_password = schema.Password(
+        title = u'Password for SMTP Account',
+        default = None,
+        required = False,
+        )
+
 
 class ISessionConfiguration(IWAeUPObject):
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/authentication.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/authentication.py	(revision 7220)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/authentication.py	(revision 7221)
@@ -52,4 +52,8 @@
 
     @property
+    def email(self):
+        return self.context.email
+
+    @property
     def description(self):
         return self.title
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py	(revision 7220)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/interfaces.py	(revision 7221)
@@ -16,10 +16,10 @@
 ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##
-import re
 from datetime import datetime
 from zope.interface import Attribute, invariant, Interface
 from zope.interface.exceptions import Invalid
 from zope import schema
-from waeup.sirp.interfaces import IWAeUPObject, academic_sessions_vocab
+from waeup.sirp.interfaces import (
+    IWAeUPObject, academic_sessions_vocab, validate_email)
 from waeup.sirp.schema import TextLineChoice
 from waeup.sirp.university.vocabularies import CourseSource, study_modes
@@ -30,15 +30,4 @@
 from waeup.sirp.payments.interfaces import IPaymentsContainer, IOnlinePayment
 
-# Define a valiation method for email addresses
-class NotAnEmailAddress(schema.ValidationError):
-    __doc__ = u"Invalid email address"
-
-check_email = re.compile(
-    r"[a-zA-Z0-9._%-]+@([a-zA-Z0-9-]+.)*[a-zA-Z]{2,4}").match
-def validate_email(value):
-    if not check_email(value):
-        raise NotAnEmailAddress(value)
-    return True
-
 class IStudentsUtils(Interface):
     """A collection of methods which are subject to customization.
Index: main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_authentication.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_authentication.py	(revision 7220)
+++ main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_authentication.py	(revision 7221)
@@ -63,4 +63,5 @@
     fullname = 'Test User'
     password = None
+    email = None
 
 
Index: main/waeup.sirp/trunk/src/waeup/sirp/userscontainer.py
===================================================================
--- main/waeup.sirp/trunk/src/waeup/sirp/userscontainer.py	(revision 7220)
+++ main/waeup.sirp/trunk/src/waeup/sirp/userscontainer.py	(revision 7221)
@@ -31,5 +31,6 @@
     grok.require('waeup.manageUsers')
 
-    def addUser(self, name, password, title=None, description=None, roles=[]):
+    def addUser(self, name, password, title=None,
+                description=None, email=None, roles=[]):
         """Add a new Account instance, created from parameters.
         """
@@ -38,5 +39,5 @@
         #if description is None:
         #    description = title
-        self[name] = Account(name, password, title, description, roles)
+        self[name] = Account(name, password, title, description, email, roles)
 
     def addAccount(self, account):
