批量导入电子邮件文件

更新时间:2020-05-11 18:02:56

归档电子邮件文件时,MailStore仅允许归档单个电子邮件文件(PST,MBOX)或包含一个用户的电子邮件文件的目录(EML,MSG)。 下面介绍了如何使用Python编写的批量导入脚本,通过几个步骤将所有用户的所有PST,MBOX,EML或MSG文件存档。 批量导入脚本期望电子邮件文件位于以相应MailStore用户命名的文件夹中。这样的文件夹结构可以很容易地由Python脚本包包含的另一个脚本创建。 如果只想存档一个用户的PST或MBOX文件,则可以使用批处理脚本包中的批量导入脚本;在这种情况下,不需要安装Python。  

准备Python

提供的脚本是用Python编写的。需要Python 3.2或更高版本以及Python脚本包。  

准备文件夹结构

该脚本包包含createUserFolders.py脚本,该脚本通获取现有MailStore Server用户列表并在文件系统中创建具有相同名称的文件夹来准备文件夹。实际的批量归档脚本使用这些文件夹名称将附带的文件分配给MailStore中的相应用户。 必须在MailStore Server服务配置中启用MailStore服务器管理API 。 安装Python之后,可以通过右键单击脚本,然后选择提供的Python编辑器IDLE来修改脚本。适应的价值观USER,PASS,HOST和PORT您的安装。 该rootpath变量包含将在其中创建文件夹的路径。 按F5运行脚本,随后出现一个安全问题。  

准备存档配置文件

在执行批量导入脚本之前,必须在MailStore Server中手动创建与要归档的电子邮件文件(PST,MBOX,EML / MSG)相对应的新归档配置文件。 存档配置文件的类型必须为Single User。该归档配置文件中的设置适用于所有读取的文件。例如,如果您排除或包含文件夹或定义过滤器,它们将应用于您存档的所有文件。 您在配置文件中指定的PST或MBOX文件或包含EML / MSG文件的文件夹的路径无关紧要,因为它会被批量导入脚本覆盖。此外,在归档EML / MSG文件时,可以识别子文件夹,而在EML文件中的MailStore标头始终被忽略。 重要说明:如果要存档PST文件,则必须在运行存档配置文件的计算机上安装Microsoft Outlook。 根据不同的文件类型进行归档,创建配置文件必须命名templateBulkImportEMLMSG,templateBulkImportPST或templateBulkImportMBOX。  

填充文件夹

对于每个用户,将要归档的电子邮件文件放在下方的相应文件夹中rootpath。归档PST文件时,这些文件可以位于子文件夹中。不支持同时导入不同的文件类型。如果要存档PST和MBOX文件,则每个文件都需要单独运行。  

归档

归档由bulkImport.py脚本完成。在运行之前,必须使用IDLE使它适应MailStore的安装。由于此脚本使用MailStore客户端连接到服务器,而不是连接到MailStore服务器管理API,因此您必须稍微使用其他值。 MailStoreCmdSilent.exe,主机名,管理员凭据和路径rootpath必须进行调整。 导入MailStore Server时,HOST必须采用格式computer:port。导入MailStore SPE实例时,格式必须为https://computer:port/instanceid。 与createUserFolders.py脚本类似,rootpath指向包含实际用户文件夹的文件夹。所述filetype变量可以根据文件类型来归档具有以下值之一:pst,mbox或emlmsg。 在IDLE中,按F5键运行脚本。  

记录

归档过程运行时,可以在状态窗口中监视其进度。消息出口代码:0表示文件或文件夹已成功归档。不同的输出将显示错误。过程的任务日志存储在rootpath文件夹中,并命名如下:
Date-Time-User-File.log (PST,MBOX)
Date-Time-User.log (EML/MSG) MailStore客户端中的“最近的结果”表为您提供了所有运行归档配置文件的概述。可以通过开始时间轻松地识别失败的运行,因为日志文件的文件名以相同的值开头。  

将Exchange存档邮箱迁移到MailStore

MailStore无法直接访问Exchange存档邮箱。要存档其中包含的邮​​件,必须将它们复制到MailStore能够读取的位置。最终用户可以通过Outlook将邮件移回原始邮箱,然后使用Exchange或Outlook存档配置文件通过MailStore进行存档。或者,Exchange管理员将存档邮箱导出到PST文件中。后者可以在一个中央位置完成并完全自动化。之后,可以使用上述步骤将PST文件存档。 要从存档邮箱创建PST文件,请按照下列步骤操作:
  • 创建可以从Exchange Server访问的网络共享。
  • 授予域组“Exchange受信任的子系统”对此共享的写权限。
  • 在Microsoft Exchange Server中打开一个Microsoft Exchange命令行管理程序会话。
  • 在Microsoft Exchange命令行管理程序中执行以下命令,以将导出特权授予administrator@example.com。根据您的环境调整用户名:
New-ManagementRoleAssignment -Role "Mailbox Import Export" -User administrator@example.com
  • 在Exchange命令行管理程序会话中定义一个指向网络共享的新变量:
$ExportPath = "\\NAS\PSTs"
  • 在Exchange命令行管理程序中执行以下脚本以创建PST文件。Exchange命令行管理程序必须由被授予导出特权的用户启动。您可能必须重新启动Exchange命令行管理程序会话:
  foreach ($mailbox in (Get-Mailbox))
 {
	 $directory = ("$ExportPath\{0}" -f $mailbox.Alias).toLower()
	 if (-not (test-path $directory) )
	 {
		 New-Item -ItemType directory -Path $directory
	 }
	 New-MailboxExportRequest -Mailbox $mailbox.Alias -FilePath ("{0}\{1}-Archive.pst" -f $directory,$mailbox.Alias) -IsArchive
 }
注意: New-MailboxExportRequest cmdlet仅接受导出到UNC路径。不支持本地路径。当省略参数-IsArchive时,常规邮箱将被复制到PST文件中。
  • 导出过程在后台运行。可以使用以下命令检查状态:
 Get-MailboxExportRequest | Get-MailboxExportRequestStatistics
  • 可以使用以下命令删除角色分配:
 Get-ManagementRoleAssignment -Role "Mailbox Import Export" | select Name
 Remove-ManagementRoleAssignment "Mailbox Import Export-Administrator"
  • 导出完成后,可以使用上述步骤将PST文件存档。