help centre
For more info visit status.atmail.com

How can we help?


Search our knowledge base for answers to
common questions and latest updates.



My activities New request

Follow

Supporting migration of user%domain login format via POP3/IMAP

Nathan Salt -

PROBLEM

I am migrating from a legacy mail-server where users login via POP3/IMAP as user%domain.comI need to support this authentication mode, so I can migrate to Atmail without having end users change their mail-client username to login. How do I support this?

ENVIRONMENT

  • On-Premise Server + WebMail Installations: Version 6.0 > Current Version
  • Webmail Only Installations: Version 6.0 > Current Version

CAUSE

Legacy migration issue

RESOLUTION

This is possible to achieve by altering the SQL query used to authenticate users in Atmail.To enable visit the Webadmin > Services > POP3/IMAP

Set a default domain for authentication, and select the SQL-query type = "Fast"

Next the /usr/local/atmail/mailserver/etc/authmysqlrc controls how the POP3/IMAP server handles authentication for end users.

Change the entry MYSQL_SELECT_CLAUSE to read:

MYSQL_SELECT_CLAUSE SELECT distinct UserSession.Account, '', UserSession.Password, '3000','3000',Users.MailDir, Users.MailDir, '', 'allowimap=1,allowpop3=1' FROM UserSession, Users WHERE (UserSession.Account = CONCAT('$(local_part)', '@', '$(domain)') OR UserSession.Account = REPLACE('$(local_part)', '%', '@') ) AND UserSession.Account = Users.Account and (Users.Account=CONCAT('$(local_part)', '@', '$(domain)') or Users.Account=REPLACE('$(local_part)', '%', '@') ) and (Users.UserStatus != '1' or Users.UserStatus is null);

This will supporting logging in as user@domain or user%domain

To test the changes restart services:

/etc/init.d/atmailserver restart

In order to support the Webadmin scripts updating the authmysqlrc you need to edit the source

/usr/local/atmail/webmail/libs/Atmail/Exim_Config.php

Locate the following code and replace the code in bold:

if($pref['pop3imap_querytype'] == "quick")      {

 

$courier_conf['MYSQLQUERY'] =

# The SQL query used by @Mail to authentication with the mySQL database

# Note the UID 3000 is used for the query, which is the atmail username that has permissions

# over the /usr/local/atmail/users directory

 

#Short query - No group support to toggle POP3/IMAP on/off on a group basis

 

MYSQL_SELECT_CLAUSE SELECT distinct UserSession.Account, $crypt, UserSession.Password, '3000','3000',Users.MailDir, Users.MailDir, '', 'allowimap=1,allowpop3=1' FROM UserSession, Users WHERE (UserSession.Account = CONCAT('$(local_part)', '@', '$(domain)') OR UserSession.Account = REPLACE('$(local_part)', '%', '@') ) AND UserSession.Account = Users.Account and (Users.Account=CONCAT('$(local_part)', '@', '$(domain)') or Users.Account=REPLACE('$(local_part)', '%', '@') ) and (Users.UserStatus != '1' or Users.UserStatus is null)

Once modified you now have a system that can authenticate with user%domain.com or user@domain.

Have more questions? Submit a request

Comments


Contact our support team


+61 (7) 5357 6605       support@atmail.com