My activities New request

contact atmail support

PH: +61 (7) 5357-6605

support@atmail.com

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