07-09-2010
  Accueil  
Main Menu
Accueil
Nouvelles
Liens
Contacts
Recherche
Traduction
Téléchargements
Association

Modification des sources d'OX pour utiliser un serveur de messagerie externe

Bastien Le Gonidec / Nov-2005

Ce document est basĂ© sur l’article “Using a different Username for IMAP-Login” paru sur le wiki d’Open-Xchange

On utilise ici les champs libres 19 et 20 de l’utilisateur interne pour stocker respectivement le login et le password de connexion au serveur IMAP externe. Il est possible de stocker ces valeurs dans d’autres champs (par exemple en crĂ©ant des champs LDAP dans la base OX), il suffira alors de remplacer le nom des champs dans les fichiers concernĂ©s ci-dessous.

Ces modifications sont Ă  faire directement dans les fichiers sources d’OX, avant la compilation.

Nota : Les lignes prĂ©cĂ©dĂ©es d’un + sont Ă  ajouter, les lignes prĂ©cĂ©dĂ©es d’un - sont Ă  supprimer. Les lignes non prĂ©cĂ©dĂ©es d’un + ou d’un - sont juste lĂ  pour situer l’emplacement dans le fichier des lignes Ă  ajouter/supprimer. (note de Nicolas : il s’agit d’un fichier diff)

src/com/openexchange/groupware/MailFunc.java
                ~Ligne 47 :
        --------------------------------------------------------------------------------------------
          import java.io.IOException;
          import java.io.OutputStream;

        + import com.openexchange.groupware.ldap.Factory;
        + import com.openexchange.groupware.ldap.UserGroupHandle;

          import com.openexchange.server.ComfireLogger;
          import com.openexchange.thread.nasObject;
        --------------------------------------------------------------------------------------------

                ~Ligne 84 :
        --------------------------------------------------------------------------------------------
          try {
                  mh = new MailHandle();                
                  mh.setImap(no.getImapServer(),
Integer.parseInt((String)no.global.get("imapport")));

        -         mh.initIMAPConnection(no.getUser(), no.getPassword());
        + String loginName = "";
        + try {
        +        UserGroupHandle ugh = Factory.newUserGroupHandle(no.getLDAP());
        +        String [] attr = new String[1];
        +        attr[0] = "OXUserUserUndef19";
        +        loginName= (String) ugh.getUserAttributes(no.getUser(), attr).get(attr[0]);
        +        ugh.close();
        + } catch (javax.naming.NamingException ne) { ne.printStackTrace(); }
        + String loginPwd = "";
        + try {
        +        UserGroupHandle ugh = Factory.newUserGroupHandle(no.getLDAP());
        +        String [] attr = new String[1];
        +        attr[0] = "OXUserUserUndef20";
        +        loginPwd= (String) ugh.getUserAttributes(no.getPassword(), attr).get(attr[0]);
        +        ugh.close();
        + } catch (javax.naming.NamingException ne) { ne.printStackTrace(); }
        + mh.initIMAPConnection(loginName, loginPwd);

          int a[] =
mh.checkForNewMail(GlobalConfig.getBoolean("mail_check_includes_subfolder"));
        --------------------------------------------------------------------------------------------


src/com/openexchange/groupware/PortalManagement.java
                ~Ligne 56 :
        --------------------------------------------------------------------------------------------
          import java.util.Iterator;
          import java.util.List;

        + import com.openexchange.groupware.ldap.Factory;
        + import com.openexchange.groupware.ldap.UserGroupHandle;

          import com.openexchange.server.ComfireLogger;
          import com.openexchange.thread.nasObject;
        --------------------------------------------------------------------------------------------

                ~Ligne 213 :
        --------------------------------------------------------------------------------------------
          mh = new MailHandle();
          mh.setImap(no.getImapServer(), Integer.parseInt((String)no.global.get("imapport")));


        - mh.initIMAPConnection(no.getUser(), no.getPassword());
        + String loginName = "";
        +        try {
        +                UserGroupHandle ugh = Factory.newUserGroupHandle(no.getLDAP());
        +                String [] attr = new String [1];
        +                attr[0] = "OXUserUserUndef19";
        +                loginName = (String) ugh.getUserAttributes(no.getUser(), attr).get(attr[0]);
        +                ugh.close();
        +        } catch(javax.naming.NamingException ne) { ne.printStackTrace(); }
        + String loginPwd = "";
        +        try {
        +                UserGroupHandle ugh = Factory.newUserGroupHandle(no.getLDAP());
        +                String [] attr = new String [1];
        +                attr[0] = "OXUserUserUndef20";
        +                loginPwd = (String) ugh.getUserAttributes(no.getPassword(), attr).get(attr[0]);
        +                ugh.close();
                } catch(javax.naming.NamingException ne) { ne.printStackTrace(); }
        + mh.initIMAPConnection(loginName, loginPwd);

          boolean withSubFolder = GlobalConfig.getBoolean("mail_check_includes_subfolder");
        --------------------------------------------------------------------------------------------


src/com/openexchange/webmail/data/WebmailUserSettings.java
                ~Ligne 124 :
        --------------------------------------------------------------------------------------------
          public HashMap dateFormat = new HashMap();
          private String signaturePosition = "below"; 

        + private String imapUid;
        + private String imapPwd;
    
          public WebmailUserSettings() { }
        --------------------------------------------------------------------------------------------

                ~Ligne 264
        --------------------------------------------------------------------------------------------
          public String getPassword () {
          return (password);
          }

        + public void setImapUid(String imapUid) {
        + this.imapUid = imapUid;
        + }

        + public String getImapUid(){
        + return this.imapUid;
        + }
        +
        + public void setImapPwd(String imapPwd) {
        + this.imapPwd = imapPwd;
        + }
        +
        + public String getImapPwd(){
        + return this.imapPwd;
        + }

          public void setName (String name) {
          this.name = name;
        --------------------------------------------------------------------------------------------


src/com/openexchange/webmail/Management.java
                ~Ligne 1217 :
        --------------------------------------------------------------------------------------------
          String mailDomain = ugh.getUserAttributeMailDomainName();

        + String imapUid = "OXUserUserUndef19";
        + String imapPwd = "OXUserUserUndef20";

          Map values = ugh.getUserAttributes(usr,
        --------------------------------------------------------------------------------------------

                ~Ligne 1227 :
        --------------------------------------------------------------------------------------------
          cName, uriName, pagerName, oName, langName,
          mailName, timeZoneName, imapServerName,

        - smtpServerName, mailDomain });
        + smtpServerName, mailDomain, imapUid, imapPwd });

          Attributes attrs = null;
          Attribute attr = null;
        --------------------------------------------------------------------------------------------

                ~Ligne 1317 :
        --------------------------------------------------------------------------------------------
                if (values.containsKey(mailDomain)) {
                        wus.setDomain((String)values.get(mailDomain));
                 }
                    
        +        if (values.containsKey(imapUid)){
        +                wus.setImapUid((String)values.get(imapUid));
        +        }
        +
        +        if (values.containsKey(imapPwd)){
        +                wus.setImapPwd((String)values.get(imapPwd));
        +         }


          } catch (Exception e) { 
        --------------------------------------------------------------------------------------------

                ~Ligne 1336 :
        --------------------------------------------------------------------------------------------
          wdic.setImapServer(wus.getIMAPServer(), wus.getIMAPPort());

        - wdic.setUsername(wus.getUsername());
        - wdic.setPassword(wus.getPassword());
        + wdic.setUsername(wus.getImapUid());
        + wdic.setPassword(wus.getImapPwd());

          try {
        --------------------------------------------------------------------------------------------

Si on veut utiliser la mĂŞme mĂ©thode pour l’authentification au serveur SMTP, il faut aussi modifier le fichier suivant :

src/com/openexchange/webmail/ComposeMessage.java
                ~Ligne 1595 :
        --------------------------------------------------------------------------------------------
        - transport.connect(null, wus.getUsername(), wus.getPassword());
        + transport.connect(null, wus.getImapUid(), wus.getImapPwd());
        --------------------------------------------------------------------------------------------

Commentaires

Nom complet:
Adresse de courriel:
 
· messagerie_externe.txt · Last modified on 12/30/2005 at 18:04
 
Recent changes RSS feed Driven by DokuWiki


Get The Best Free Joomla Templates at www.joomla-templates.com