如何使用IMAP工具在IMAP服务器之间迁移邮箱
本指南介绍如何使用IMAP TOOLS在IMAP服务器之间迁移邮箱。 IMAP工具是Perl脚本的集合,允许您使用IMAP服务器和POP3服务器执行各种任务。 在本文中,我将关注脚本imapcopy.pl(将邮件和邮箱从一个IMAP服务器复制到另一个)和pop3toimap.pl(将POP3邮件复制到IMAP服务器)。 两个脚本都支持SSL。 如果您指定端口993(POP3为995),则会启动SSL连接。 如果端口号为143(POP3为110),则会尝试使用非SSL连接。 使用任何其他值,端口将被测试以查看是否支持SSL。 如果是这样,SSL将用于建立连接; 否则将进行非SSL连接。
我不会保证这将为您工作!
1初步说明
我在这里使用两台服务器:
-
server1.example.com
(来源) -
server2.example.com
(目标)
我想将server1.example.com上
的邮箱sales@example.com
(username: sales@example.com
,password: secret
) 迁移
到server2.example.com
上的邮箱sales@example.com
(用户名和密码是与server1.example.com
相同)。
2我们开始之前
在我们开始之前,让我们来看看这两个邮箱,看看它们的内容(你可以使用电子邮件客户端,如Outlook,Thunderbird或基于Web的电子邮件客户端,如SquirrelMail - 我在这里使用SquirrelMail)。
server1.example.com:
server2.example.com:
迁移后,server1.example.com上的三条消息应在server2.example.com上可用
。
3 IMAP工具安装
如果我们在server1.example.com
或server2.example.com
上安装IMAP TOOLS,我们甚至可以将它安装在第三个无关的服务器上。
我们在/ usr / local / imap_tools /
目录中下载并安装IMAP TOOLS脚本,如下所示:
cd /usr/local/
mkdir imap_tools
cd imap_tools
wget http://www.athensfbc.com/imap_tools/files/imap_tools_V1.105.tar.gz
tar xvfz imap_tools_V1.105.tar.gz
现在我们必须使Perl脚本可执行:
chmod +x /usr/local/imap_tools/*.pl
4将电子邮件从一个IMAP服务器迁移到另一个IMAP服务器使用imapcopy.pl
imapcopy.pl的
用法如下:
/usr/local/imap_tools/imapcopy.pl -S host1[:port]/user1/password1 -D host2[:port]/user2/password2
因此,将server@example.com
上sales@example.com的
电子邮件从server2.example.com
复制
到sales@example.com
的命令
是:
/usr/local/imap_tools/imapcopy.pl -S server1.example.com/sales@example.com/secret -D server2.example.com/sales@example.com/secret
以下是一个示例输出:
root@server1:/usr/local/imap_tools# /usr/local/imap_tools/imapcopy.pl -S server1.example.com/sales@example.com/secret -D server2.example.com/sales@example.com/secret
/usr/local/imap_tools/imapcopy.pl starting
Connected to server1.example.com on port 143
Authenticating to server1.example.com as sales@example.com
Connected to server2.example.com on port 143
Authenticating to server2.example.com as sales@example.com
Number of mailboxes to process: 5
Drafts mailbox is empty
Junk mailbox is empty
Trash mailbox is empty
Sent mailbox is empty
Copied 3 messages to INBOX
Copied 3 total messages
root@server1:/usr/local/imap_tools#
在目标服务器( server2.example.com
)上,您现在应该看到来自server1.example.com
的消息:
server2.example.com:
5将电子邮件从POP3服务器迁移到具有pop3toimap.pl的IMAP服务器
pop3toimap.pl的
用法如下:
/usr/local/imap_tools/pop3toimap.pl -p POP3host[:port] -i IMAPhost[:port] -u users_file
users_file
具有以下格式:
popUsername password imapUsername password
所以我们来创建包含登录详细信息的文件/ usr / local / imap_tools / users_file
:
vi /usr/local/imap_tools/users_file
sales@example.com secret sales@example.com secret |
将电子邮件从POP3服务器server1.example.com
上的sales@example.com复制
到IMAP服务器server2.example.com
上的sales@example.com的命令
是:
/usr/local/imap_tools/pop3toimap.pl -p server1.example.com -i server2.example.com -u /usr/local/imap_tools/users_file
如果你收到错误
Unexpected response to SELECT INBOX. command: 1 NO Mailbox does not exist, or must be subscribed to.
unexpected APPEND response: 1 NO Access denied for APPEND on INBOX. (ACL "i" required)
打开pop3toimap.pl
...
vi /usr/local/imap_tools/pop3toimap.pl
...并注释行123( $ mailbox ='INBOX',除非$ mailbox;
)并添加行124( $ mailbox ='INBOX';
):
[...] foreach $msgnum ( @popMsgList ) { if ( $range ) { Log("msgnum $msgnum") if $debug; next if $msgnum < $lower; next if $msgnum > $upper; } Log("Fetching POP message $msgnum") if $debug; $msg = getPOPMsg( $msgnum, $p_conn ); getFlag( \$msg, \$flag ); getDate( \$msg, \$date ); next if $msg eq ''; #$mailbox = 'INBOX' unless $mailbox; $mailbox = 'INBOX'; selectMbx( $mailbox, $i_conn ); if ( insertMsg(*msg, $mailbox, $date, $flag, $i_conn ) ) { $copied++; $grandTotal++; Log("$copied messages migrated") if $copied/100 == int($copied/100); # Delete the message from the POP server if the delete flag is set deletePOPMsg( $msgnum, $p_conn ) if $delete; } } [...] |
然后运行
/usr/local/imap_tools/pop3toimap.pl -p server1.example.com -i server2.example.com -u /usr/local/imap_tools/users_file
再次命令。
以下是一个示例输出:
root@server1:/usr/local/imap_tools# /usr/local/imap_tools/pop3toimap.pl -p server1.example.com -i server2.example.com -u /usr/local/imap_tools/users_file
pop3toimap 1.3 starting
There are 1 users to be migrated
Connected to server1.example.com on port 110
Connected to server2.example.com on port 143
Migrating sales@example.com on server1.example.com to sales@example.com on server2.example.com (3 messages)
Summary of POP3 -> IMAP migration
Users migrated 1
Total messages 3
Total bytes 2912
root@server1:/usr/local/imap_tools#
在目标服务器( server2.example.com
)上,您现在应该看到来自server1.example.com
的消息:
server2.example.com:
6链接
- IMAP工具: http : //www.athensfbc.com/imap_tools/