Hi, thanks for the great tutorial called Postfix Virtual Hosting With LDAP Backend And With Dovecot As IMAP/POP3 Server On Ubuntu Trusty Tahr 14.04. Having strictly followed the instructions I am facing a serious issue now. Although Phamm (version 0.6.2) allows me to login via the Phamm LDAP user or via the LDAP administrator it only allows me to select a language and to logout. However, I've successfully imported the additional LDAP schemes (Jxplorer shows them under cn=scheme, cn=config), both Postfix and Dovecot start without errors or warnings using the LDAP configuration and I think I've installed all required PHP packages (I've followed the guide explaining how to set up Lighttpd with PHP5-FPM on Ubuntu 14.04). Here is my "global" configuration: Base DN: dc=hakwaidhofen-ybbs,dc=ac,dc=at LDAP administrator: cn=admin,dc=hakwaidhofen-ybbs,dc=ac,dc=at DN for the virtual users: o=email,dc=hakwaidhofen-ybbs,dc=ac,dc=at LDAP Phamm user: cn=phamm,o=email,dc=hakwaidhofen-ybbs,dc=ac,dc=at Virtual mail system user: vmail (UID=1002, GID=1002) /* I've taken care of the different UID and GID*/ You can see my Phamm configuration down below: /** * The main Phamm config file * * @package Phamm * @subpackage configuration * @author Alessandro De Zorzi <adezorzi AT rhx DOT it> **/ // *============================* // *=== LDAP Server Settings ===* // *============================* // The server address (To use ldapssl change to ldaps://localhost) define ('LDAP_HOST_NAME','127.0.0.1'); // The protocol version [2,3] define ('LDAP_PROTOCOL_VERSION','3'); // The server port (To use ldapssl change to 636) define ('LDAP_PORT','389'); // Set LDAP_TLS to 1 if you want to use TLS define ('LDAP_TLS',0); // The container define ('SUFFIX','dc=hakwaidhofen-ybbs,dc=ac,dc=at'); // The admin bind dn (could be rootdn) define ('BINDDN','cn=admin,dc=hakwaidhofen-ybbs,dc=ac,dc=at'); // The Phamm container define ('LDAP_BASE','o=email,dc=hakwaidhofen-ybbs,dc=ac,dc=at'); // *============================* // *=== Layout Settings ===* // *============================* // Page title define('ORG_TITLE','Phamm'); // URL define('ORG_URL','http://www.phamm.org'); // Logo define('ORG_LOGO', './img/phamm_logo.svg'); // CSS Style $style = 'phamm'; // Default language define ('DEFAULT_LANGUAGE','en_GB'); // The languages available $supported_languages = array(); $supported_languages["de_DE"] = "Deutsch"; $supported_languages["en_GB"] = "English"; $supported_languages["es_ES"] = "Español"; $supported_languages["fr_FR"] = "French"; $supported_languages["hu_HU"] = "Hungarian"; $supported_languages["it_IT"] = "Italiano"; $supported_languages["pl_PL"] = "Polish"; $supported_languages["ru_RU"] = "Russian"; $supported_languages["vi_VN"] = "Tiếng Việt"; // Vietnamese $supported_languages["da_DK"] = "Dansk"; // Danish $supported_languages["pt_BR"] = "Portuguese"; // $supported_languages["ll_CC"] = "Your language here"; // This TLDs menu $tld = array(); $tld[] = ".com"; $tld[] = ".ac.at"; $tld[] = ".at"; $tld[] = ".org"; $tld[] = ".net"; // $tld[] = ".biz"; // $tld[] = ".info"; // $tld[] = ".eu"; // $tld[] = ".it"; // $tld[] = ".fr"; // $tld[] = ".de"; // *============================* // *=== Plugins Settings ===* // *============================* // The default plugin define ('DEFAULT_PLUGIN','mail'); // This array contains the active plugins // NOTE the display order reflect this order $plugins = array(); $plugins[] = "mail"; $plugins[] = "alias"; //$plugins[] = "dns"; //$plugins[] = "ftp"; //$plugins[] = "proxy"; //$plugins[] = "radius"; //$plugins[] = "radius_stats"; //$plugins[] = "rates"; $plugins[] = "person"; //$plugins[] = "jabber"; //$plugins[] = "davical"; // Account can be mail OR alias $plugins_exclusion = array("mail","alias"); // *============================* // *=== System Settings ===* // *============================* // Phamm Version (+ indicate a SVN version) define ('VERSION','0.6.2'); // Useful if you want hide the version [0,1] define ('HIDE_VERSION',0); // Useful if you wish force SSL through PHP [0,1] define ('FORCE_SSL',0); // Min password length define ('PASSWORD_MIN_LENGHT',3); // Seconds after refresh page define ('REFRESH_TIME',1); // A Domain administrator (example: postmaster) define ('PHAMM_DOMAIN_ADMIN_NAME','postmaster'); // Welcome message define ('SEND_WELCOME',1); $welcome_msg = '../welcome_message.txt'; $welcome_subject = 'Welcome!'; # $welcome_sender = 'postmaster@localhost'; $welcome_bcc = 'postmaster@localhost'; // *============================* // *=== Advanced Settings ===* // *============================* // Debug level [0,1] define ('DEBUG',0); // PHP Error Level [0,1,2,10] define ('ERROR_LEVEL',2); // Log level 0->don't log [0,1,2] define ('PHAMM_LOG',0); // Log file path define ('LOG_FILE','/var/log/phamm.log'); // Standard LDAP encryption type [CRYPT,MD5,CLEAR] define ('ENC_TYPE','MD5'); // Phamm autogenerate UID from e-mail // set char used instead @ (default=.) // i.e. [email protected] produce UID=info.example.com define ('CHR_UID_ACCOUNT','.'); // Permit login without @domain (use it with carefull) // define ('DEFAULT_DOMAIN','example.tld'); Here is my mail plug-in configuration file: cat mail.xml <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE plugin SYSTEM "http://www.phamm.org/DTD/phamm-plugins.dtd"> <plugin name="mail"> <label>MAIL</label> <version> <number>0.0.4</number> <creationDate>2005-02-19</creationDate> <updatedDate>2008-09-08</updatedDate> <status>stable</status> </version> <author> <firstName>Alessandro De Zorzi</firstName> <lastName>De Zorzi</lastName> <mail>[email protected]</mail> <web>http://www.phamm.org</web> </author> <license>GPL</license> <shortDescription>Plugin to manage Virtual Domain, e-mail account and aliases</shortDescription> <longDescription>Plugin to manage Virtual Domain, e-mail account and aliases</longDescription> <parent>top</parent> <color>FF4455</color> <minAuthLevel>2</minAuthLevel> <isDomainRelated>1</isDomainRelated> <isPostmasterRelated>1</isPostmasterRelated> <isAccountRelated>1</isAccountRelated> <domain> <attributes> <attribute name="maxMail"> <prettyName>Max number of Mail</prettyName> <size>4</size> <hidden>1</hidden> <maxlength>4</maxlength> <default>100</default> </attribute> <attribute name="maxAlias"> <prettyName>Max number of Alias</prettyName> <hidden>1</hidden> <size>4</size> <maxlength>4</maxlength> <default>100</default> </attribute> <attribute name="maxQuota"> <prettyName>Max Quota</prettyName> <size>4</size> <hidden>1</hidden> <maxlength>4</maxlength> <default>100</default> </attribute> <attribute name="accountActive"> <prettyName>Active</prettyName> <bool>1</bool> <hidden>1</hidden> <table>1</table> <default>TRUE</default> </attribute> <attribute name="editAV"> <prettyName>Can edit Anti-Virus</prettyName> <bool>1</bool> <hidden>1</hidden> <default>TRUE</default> </attribute> <attribute name="delete"> <prettyName>Delete</prettyName> <bool>1</bool> <table>1</table> <hidden>1</hidden> <cron>1</cron> <required>1</required> <default>FALSE</default> </attribute> <attribute name="postfixTransport"> <prettyName>Postfix Transport</prettyName> <default>dovecot:</default> <hidden>1</hidden> </attribute> </attributes> </domain> <postmaster> <attributes> <attribute name="editAccounts"> <prettyName>Can edit Accounts</prettyName> <bool>1</bool> <table>1</table> <default>TRUE</default> <minAuthLevel>6</minAuthLevel> </attribute> </attributes> </postmaster> <account> <objectClasses> <objectClass name="VirtualMailAccount"> <bug>0</bug> </objectClass> <objectClass name="Vacation"> <bug>0</bug> </objectClass> <objectClass name="VirtualForward"> <bug>0</bug> </objectClass> <objectClass name="amavisAccount"> <bug>0</bug> </objectClass> </objectClasses> <attributes> <attribute name="smtpAuth"> <prettyName>SMTP Auth</prettyName> <bool>1</bool> <table>1</table> <default>FALSE</default> <minAuthLevel>4</minAuthLevel> </attribute> <attribute name="quota"> <prettyName>Quota</prettyName> <table>1</table> <default>1000</default> <multiplier>1048576</multiplier> <suffix>S</suffix> <minAuthLevel>4</minAuthLevel> </attribute> <attribute name="accountActive"> <prettyName>Active</prettyName> <bool>1</bool> <table>1</table> <required>1</required> <default>TRUE</default> <minAuthLevel>4</minAuthLevel> </attribute> <attribute name="vdHome"> <prettyName>Virtual Home</prettyName> <hidden>1</hidden> <required>1</required> <default>/home/vmail/domains</default> <minAuthLevel>4</minAuthLevel> </attribute> <attribute name="mailbox"> <prettyName>Mailbox</prettyName> <hidden>1</hidden> <required>1</required> <!--<default>=php.Value(%domain%,/,+account_new+,/)</default>--> <default>=php.Value(%domain%,/,+account_new+,@,%domain%/)</default> <minAuthLevel>4</minAuthLevel> </attribute> <attribute name="uid"> <prettyName>UID</prettyName> <required>1</required> <default>=php.Value(+account_new+,.,%domain%)</default> <minAuthLevel>4</minAuthLevel> <hidden>1</hidden> <hideCreation>1</hideCreation> </attribute> <attribute name="mailAutoreply"> <prettyName>Mail Autoreply</prettyName> <hidden>1</hidden> <default>=php.Value(+account_new+,@,%domain%,.autoreply)</default> <minAuthLevel>4</minAuthLevel> </attribute> <attribute name="delete"> <prettyName>Delete</prettyName> <bool>1</bool> <hidden>1</hidden> <table>1</table> <default>FALSE</default> <minAuthLevel>4</minAuthLevel> <cron>1</cron> </attribute> <attribute name="otherTransport"> <prettyName>Other Transport</prettyName> <hidden>1</hidden> <default>phamm:</default> <minAuthLevel>4</minAuthLevel> </attribute> <attribute name="vacationActive"> <prettyName>Vacation</prettyName> <default>FALSE</default> <bool>1</bool> <hidecreation>1</hidecreation> </attribute> <attribute name="vacationInfo"> <prettyName>Vacation Info</prettyName> <subordinated>vacationActive</subordinated> <textarea>1</textarea> </attribute> <attribute name="vacationForward"> <prettyName>Vacation Forward</prettyName> <subordinated>vacationActive</subordinated> <subordinateddelete>1</subordinateddelete> </attribute> <attribute name="vacationStart"> <prettyName>Vacation Start</prettyName> <subordinated>vacationActive</subordinated> <default>201001010000</default> <date>1</date> </attribute> <attribute name="vacationEnd"> <prettyName>Vacation End</prettyName> <subordinated>vacationActive</subordinated> <default>201001010000</default> <date>1</date> </attribute> <attribute name="forwardActive"> <prettyName>Forward Active</prettyName> <bool>1</bool> <default>FALSE</default> <hidecreation>1</hidecreation> <table>1</table> </attribute> <attribute name="maildrop"> <prettyName>Maildrop</prettyName> <subordinated>forwardActive</subordinated> </attribute> <attribute name="amavisBypassVirusChecks"> <prettyName>Virus Check</prettyName> <bool>1</bool> <table>1</table> <reverse>1</reverse> <default>TRUE</default> <minAuthLevel>4</minAuthLevel> </attribute> <attribute name="amavisBypassSpamChecks"> <prettyName>SPAM Check</prettyName> <bool>1</bool> <table>1</table> <reverse>1</reverse> <default>FALSE</default> <minAuthLevel>4</minAuthLevel> </attribute> <attribute name="amavisSpamKillLevel"> <prettyName>Spam Kill Level</prettyName> <subordinatedReverse>amavisBypassSpamChecks</subordinatedReverse> <minAuthLevel>4</minAuthLevel> <default>6.0</default> <options> <option name="low"> <value>10.0</value> </option> <option name="medium"> <value>6.0</value> </option> <option name="high"> <value>4.5</value> </option> <option name="very_high"> <value>3.0</value> </option> </options> </attribute> <attribute name="amavisSpamTag2Level"> <prettyName>Spam Tag2 Level</prettyName> <subordinatedReverse>amavisBypassSpamChecks</subordinatedReverse> <minAuthLevel>4</minAuthLevel> <default>5.5</default> <options> <option name="low"> <value>9.5</value> </option> <option name="medium"> <value>5.5</value> </option> <option name="high"> <value>4.0</value> </option> <option name="very_high"> <value>2.5</value> </option> </options> </attribute> <attribute name="amavisSpamTagLevel"> <prettyName>Spam Tag Level</prettyName> <subordinatedReverse>amavisBypassSpamChecks</subordinatedReverse> <default>3.0</default> <options> <option name="low"> <value>7.0</value> </option> <option name="medium"> <value>3.0</value> </option> <option name="high"> <value>1.5</value> </option> <option name="very_high"> <value>0.0</value> </option> </options> <minAuthLevel>4</minAuthLevel> </attribute> <attribute name="creationDate"> <prettyName>Creation Date</prettyName> <table>1</table> <hidden>1</hidden> </attribute> </attributes> </account> </plugin>