skip to Main Content

My client previously had a website that was hosted with another gentleman who used plesk.

I have since taken over the website and migrated the domain to my server, so it’s name servers are that of my server now, and not the plesk individual’s.

I am aware that the guy used 123reg to host. And I also have the IP addresses, records and what-not, but no name servers.

My problem is: My client did not tell me they needed these emails migrated along with the website, so now they cannot access the emails that existed prior to moving the website to me.
Before you say, I have read SO many articles and threads online to try to find an answer but either they have a different issue or use an out of date solution.

I need to know how to access the old email inbox to either FTP the emails over or manually transfer them over.

So here’s the sit:

  • Domain is hosted with me using my name servers at the moment.
  • I need emails from the inbox of the same domain and same address as a whole.
  • Those emails were sent and received on an old server of different nameservers.
  • My server is CPanel, old one was Plesk.
  • Old host was 123reg.
  • New host is Krystal.
  • I have IPs and records of the old server, but no nameservers.
  • I have all passwords to every mailbox.
  • I cannot access the dashboard of the old server (not mine).
  • I have 3 days.

Please help me rectify this rookie error! Never again will I assume they do not need the emails!

Any questions please just ask. I know I have the means to fix it but don’t know how to.

Thanks a bunch!
Kieron

2

Answers


  1. The problem is that old server was using Plesk which is using Postfix email server and the new server is using cPanel which uses Exim. Hence, there is no direct method to transfer the emails. You should migrate the emails manually using IMAP. If there are only a few email accounts, try using the below steps:

    • Create the same email account on your new server that you had on your old server. Use the same spelling and capitalization.
    • Give the new email account the same password that you used on your old server. You can change the password after the migration process is done, if desired.

    • In your local email client, create two new email accounts.

      • These will both be for the same email address.
      • They will both use the same password.
      • They must both be configured to connect using IMAP.
      • The incoming server (or IMAP server) will be different for each account. You should use your IP address for your new server, and your access domain or IP address for your old server, rather than your domain name, whenever possible. This will avoid any possible DNS conflicts.
    • With both accounts online, open up the inbox for the account that connects to your old server. Drag and drop messages from this inbox to the inbox on your new server.
    • That’s it! If you have a lot of emails, give the accounts a few minutes to finish syncing up. Once they’re done, your old emails will be in your mailbox on the new server.
    Login or Signup to reply.
  2. if you have access to a console in the new server you could try to install imapsync, for example in CentOS:

    If you dont havce access to the console or cant install imapsync, you can always use the online version here: https://i005.lamiral.info/X/

    First install access to the Epel repository via yum:

      yum install epel-release
    

    Then install imapsync and its dependencies:

      yum install imapsync
    

    Then you can create a script that read a txt file and sync all the IMAP mailbox you want (just use as a source server the IP address of the old mail server):

    #!/bin/sh
    #
    # $Id: sync_loop_unix.sh,v 1.8 2018/02/12 21:53:40 gilles Exp gilles $
    
    # Example for imapsync massive migration on Unix systems.
    # See also http://imapsync.lamiral.info/FAQ.d/FAQ.Massive.txt
    #
    # Data is supposed to be in file.txt in the following format:
    # host001_1;user001_1;password001_1;host001_2;user001_2;password001_2;
    # ...
    # Separator is character semi-colon ";" it can be changed by any character changing IFS=';' 
    # in the while loop below.
    # # Each line contains 6 columns, columns are parameter values for 
    # --host1 --user1 --password1 --host2 --user2 --password2
    # and a trailing empty fake column to avoid CR LF part going 
    # in the 6th parameter password2. Don't forget the last semicolon.
    #
    # You can add extra options after the variable "$@" 
    # Use character backslash  at the end of each supplementary line, except for the last one.
    # You can also pass extra options via the parameters of this script since
    # they will be in "$@"
    
    # The credentials filename "file.txt" used for the loop can be renamed 
    # by changing "file.txt" below.
    
    
    echo Looping on account credentials found in file.txt
    echo
    
    { while IFS=';' read  h1 u1 p1 h2 u2 p2 fake
        do 
            { echo "$h1" | tr -d 'r' | egrep '^#|^ *$' ; } > /dev/null && continue # this skip commented lines in file.txt
            echo "==== Starting imapsync from host1 $h1 user1 $u1 to host2 $h2 user2 $u2 ===="
            imapsync --host1 "$h1" --user1 "$u1" --password1 "$p1" 
                     --host2 "$h2" --user2 "$u2" --password2 "$p2" 
                     "$@"  
            echo "==== Ended imapsync from host1 $h1 user1 $u1 to host2 $h2 user2 $u2 ===="
            echo
        done 
    } < file.txt
    

    This is an example of the .txt file (you have to compile it with the data of your mailboxes to sync).

    Format is:

    source server;source user;source password;destination server;destination user;destination password

    # Example file.txt for imapsync massive migration.
    #
    # $Id: file.txt,v 1.14 2018/02/11 13:42:58 gilles Exp gilles $ 
    #
    # Each line contains 6 columns, columns are parameters for 
    # --host1 --user1 --password1 --host2 --user2 --password2
    # and a trailing empty fake column to avoid CR LF part going 
    # in the 6th parameter password2. Don't forget the last semicolon.
    #
    # Windows: see the script examples/sync_loop_windows.bat 
    # Unix:    see the script examples/sync_loop_unix.sh 
    #
    # Lines starting with a # are comments and ignored
    # Blank lines are ignored as well
    
    
    # Now the data example 
    host001_1;user001_1;password001_1;host001_2;user001_2;password001_2;
    host002_1;user002_1;password002_1;host002_2;user002_2;password002_2;
    host003_1;user003_1;password003_1;host003_2;user003_2;password003_2;
    
    # Another comment blabla
    host004_1;user004_1;password004_1;host004_2;user004_2;password004_2;
    
    # This last example is a real one, ie, truly working in the real world.
    test1.lamiral.info;test1;secret1;test2.lamiral.info;test2;secret2;
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search