Plesk for Linux, by default only allows one ftp users (While it does let you add multiple web users, they are locked to the same directory as the main ftp user). However you can get around this limitation by creating additional FTP users by creating them outside of Plesk, using SSH / Shell. The process is fairly simple as well and you can setup any directory structure that you want the new user to connect to, even for adding ftp access behind the root of a web directory if you like.

To do this, we simply need to do the following;

*Prior to doing this, make sure you already have an existing ftp user in place, as you will need their ID#

1. Log into your Linux server (Only applies to a dedicated server, colo server or virtual server - VPS).

2. Once you have logged in, you need to find an ID of an existing FTP user. To do this, simply type the following:

$id user     (user is the name of the existing ftp user)

3. If you have the user, you will be given an output that looks like this;

# uid=10002(user) gid=2524(psacln) groups=2524(psacln)

4. Take the uid number as you will need this to setup the new user.

5. Now, create the new user by using this command. Also with this command, you can set the directory you want them to have access to.;

/usr/sbin/useradd -u 10002 -o -d /var/www/vhosts/example.com/custom_folder -g psacln -s /bin/false newuser    (newuser is the name if the new account)

6. The new user has been created. Now you have to assign a password to it. To do this, type the following *make sure the password is not the same as the main Plesk ftp account*;

$passwd newuser password (Change password to the password you want to assign to the user)

7. It will then ask for you to confirm the password, type the password again. If done correctly, you will get the following message;

passwd: all authentication tokens updated successfully.

That’s it, the ftp user has been created. If you ever want to remove the user, you have to do it via command line as Plesk will not sure the user. To do this, simply type the following;

$/usr/sbin/userdel username

none

*Please note that Plesk only supports the use of Domainkeys as of 8.6 and up*.

To switch on spam protection based on DomainKeys:

  1. Click the Server shortcut in the navigation pane.
  2. Click the Mail icon in the Services group.
  3. Under the DomainKeys spam protection group, select the following options:
    • Allow signing outgoing mail. Selecting this option allows you and your customers to switch on support for DomainKeys e-mail signing on a per-domain basis through the domain administration screens of the control panel (Domains > domain name > Mail > Preferences > Use DomainKeys spam protection system to sign outgoing e-mail messages option). It does not automatically switch on signing of outgoing e-mail messages.
    • Verify incoming mail. Selecting this option will configure the DomainKeys system to check all e-mail messages coming to e-mail users under all domains hosted on the server.
  4. Click OK.

Now your mail server will check all incoming e-mail messages to ensure that they come from the claimed senders. All messages, sent from the domains that use DomainKeys to sign e-mail, which fail verification will be discarded. All messages, sent from the domains that do not participate in the DomainKeys program and do not sign e-mail, will be accepted without verifying.

To switch on signing outgoing e-mail messages for a single domain:

  1. Go to Domains > domain name > Mail > Preferences.
  2. Select the Use DomainKeys spam protection system to sign outgoing e-mail messages check box.
  3. Click OK.

To switch on signing outgoing e-mail messages for a number of domains at once:

  1. Click Domains.
  2. Select the check boxes to the left of the domain names you need. To select all domains in the list, select the upper left check box in the column heading.
  3. Click Group Operations.
  4. Under Preferences, select the Switch on option next to the Use DomainKeys spam protection system to sign outgoing e-mail messages field.
  5. Click OK.

Now, the following will happen for the selected domains:

  • Private keys are generated and placed in the server’s database.
  • Public keys are generated and placed in the TXT resource records created in the domains’ DNS zones.
  • The sender’s policy advertised in the DNS TXT resource records is set to “all e-mail messages sent from this domain must be cryptographically signed; if someone receives an e-mail message claiming to originate from this domain, which is not signed, then this e-mail must be discarded.”
  • Outgoing e-mail messages are digitally signed: the “DomainKeys-Signature” header containing a signature based on a private key is added to the message headers.
none

Sadly, migrating settings that are saved in Horde is not supported by Plesk 8 as of 8.6, and likely not in Plesk 9. However there is a way to migrate the data, however it will need to be done manually. To do so, you will need to goto the server where the information that you need to migrate is. Once there, you need to login via shell / SSH. Once logged in, we need to backup 3 things;

kronolith_events

kronolith_storage

Horde Mysql database

To do this, we need to backup the tables as such;

~# mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` horde --tables kronolith_events > kronolith_events.dump
~# mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` horde --tables kronolith_storage > kronolith_storage.dump

Then we need to backup the Horde database;

~# mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` horde > horde.old.dump
Now that we have the files, you will need to move them to the new server, either by ftp, wget, scp or however you move your files between your servers.
Now on the new server, make sure you make a backup of these files incase this fails;
~# mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` horde > horde.new.dump
~# mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` horde --tables kronolith_events > kronolith_events.dump
~# mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` horde --tables kronolith_storage > kronolith_storage.dump
Put these files in a different directory to make sure you do not get confused.
Now we can start to restore the old data by doing the following;
~# mysql -uadmin -p`cat /etc/psa/.psa.shadow` horde < kronolith_events.dump
~# mysql -uadmin -p`cat /etc/psa/.psa.shadow` horde < kronolith_storage.dump
Before you restore the Horde database, you will want to remove the existing one first and then recreate it;
~# mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e"drop database horde"
~# mysql -uadmin -p`cat /etc/psa/.psa.shadow` -e"create database horde"
Then restore the original Horde database;
~# mysql -uadmin -p`cat /etc/psa/.psa.shadow` horde < horde.old.dump
Once you do this and restart Horde/Exim, you will have all of your contacts and settings migrated and ready to use on the new server.
*MAKE SURE YOU MAKE BACKUPS BEFORE YOU DO THIS*
none

If you have an iPhone and are encountering an error, such as the one below, there is a way to bypass this.

Error - “the certificate for smtp email_account at 195.545.2.15 may not be valid”

To get around this, simply do the following;

On the iPhone:

  1. Select Settings, Mail
  2. Select Add Account…
  3. Select Other
  4. Enter all of your relevant email account details. Make sure to select IMAP or POP before you “Cancel” and “Save.” You can’t adjust that setting when modifying the account later.
  5. Select the Save button. At this point, you will be presented with an ‘invalid certificate’ warning.
  6. Select the Cancel button; you will be returned to the account details screen
  7. Select the Save button; ignore the warning that ‘you may not be able to send email’
  8. Open the settings for your new mail account and select the Advanced button
  9. Use the sliders to disable SSL for mail receiving/sending. Be sure to check the port numbers to ensure they’re valid for your particular email server
That’s it. After doing this you will be able to access the email using your iPhone.
none

PROBLEM:
While Login into Webmail it returns the error: “Login failed”

SOLUTION:
Make sure that it is possible to connect to localhost:143 from the command line using telnet. If you get the error as below:
-=-=-
# telnet localhost 143
localhost/143: Name or service not known

-=-=-

then check /etc/hosts file. It must have permissions -rw-r–r– and contain the record for localhost in the following format:
-=-=-
127.0.0.1       localhost localhost.localdomain
-=-=-
Above is from From Parallels Knowledgebase

If /var/log/psa-horde/psa-horde.log shows something like:

FAILED LOGIN xx.xx.xx.xx to localhost:143[imap/notls] as me@mydomain.co.uk
FAILED LOGIN xx.xx.xx.xx to localhost:143[imap/notls] as me@mydomain.co.uk

I have searched regarding this but unable to find any fix so, I just re-installed the IMAP Service on the server. Following are the steps using which I have re-installed IMAP Server:
-=-=-
1) You can find the RPMS used by Plesk in /root/psa/PSA_version directory OR you can download the Tar (Not Autoinstaller) containing RPMS from Parallels website http://www.parallels.com/en/download/ (need registration it’s free)

2) go to the RPM directory which contains courier Imap RPM’s
#cd [path to the PSA RPM Directory]/dist-rpm-CentOS-4.2-i386/base/

3) Re-install courier-imap-3.0.8-cos4.build81070322.16.i586.rpm and psa-courier-imap-add-8.1.1-cos4.build81070322.16.i586.rpm which will automatically restart the services too
-=-=-
[root@vps base]# pwd
/root/plesk/dist-rpm-CentOS-4.2-i386/base
[root@vps base]# rpm -Uvh courier-imap-3.0.8-cos4.build81070322.16.i586.rpm psa-courier-imap-add-8.1.1-cos4.build81070322.16.i586.rpm –force
Preparing… ########################################### [100%]
Reloading configuration: [ OK ]
1:courier-imap ########################################### [ 50%]
Stopping Courier-IMAP server:
Stopping imap [ OK ]
Stopping imap-ssl [ OK ]
Stopping pop3 [ OK ]
Stopping pop3-ssl [ OK ]

Starting Courier-IMAP server:
Starting imapd [ OK ]
Starting imap-ssl [ OK ]
Starting pop3 [ OK ]
Starting pop3-ssl [ OK ]

2:psa-courier-imap-add ########################################### [100%]
Stopping Courier-IMAP server:
Stopping imap [ OK ]
Stopping imap-ssl [ OK ]
Stopping pop3 [ OK ]
Stopping pop3-ssl [ OK ]

Starting Courier-IMAP server:
Starting imapd [ OK ]
Starting imap-ssl [ OK ]
Starting pop3 [ OK ]
Starting pop3-ssl [ OK ]

[root@vps base]# netstat -nap | grep :143
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1657/couriertcpd
[root@vps base]# telnet localhost 143
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
-=-=-

none