环境要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows Server 2019 / 2022 |
| 内存 | 生产环境建议 128GB,测试环境 16GB 可用 |
| 磁盘 | 系统盘 100GB+,数据盘视邮件量而定 |
| 网络 | 静态 IP,DNS 指向本机 |
一、配置静态 IP
-
控制面板 → 网络和共享中心 → 更改适配器设置
-
右键网卡 → 属性 → Internet 协议版本 4 (TCP/IPv4)
-
选择"使用下面的 IP 地址",按实际网络环境填写:
IP 地址: <服务器IP>
子网掩码: 255.255.255.0
默认网关: <网关IP>
首选 DNS: 127.0.0.1 ← 装完 AD 后 DNS 指向本机
备用 DNS: <网关IP>
二、安装 Active Directory 域服务
Exchange Server 必须运行在 AD 域环境中。
2.1 安装 AD DS 角色
打开服务器管理器 → 添加角色和功能:
-
安装类型:基于角色或基于功能的安装
-
服务器角色:勾选 Active Directory 域服务
-
弹出确认窗口点"添加功能"
-
一路下一步,点安装
2.2 提升为域控制器
安装完成后,点击右上角黄色感叹号 → "将此服务器提升为域控制器":
-
选择"添加新林"
-
根域名:根据实际填写(如 otchk.mail )
-
设置 DSRM 密码
-
一路下一步,点安装
-
服务器会自动重启
重启后 DNS 服务会自动安装,无需手动配置。
三、安装 Exchange 前置组件
3.1 安装 Windows 功能组件
以管理员身份打开 PowerShell,运行:
Install-WindowsFeature NET-Framework-45-Features, RPC-over-HTTP-proxy, RSAT-Clustering, RSAT-Clustering-CmdInterface, RSAT-Clustering-Mgmt, RSAT-Clustering-PowerShell, Web-Mgmt-Console, WAS-Process-Model, Web-Asp-Net45, Web-Basic-Auth, Web-Client-Auth, Web-Digest-Auth, Web-Dir-Browsing, Web-Dyn-Compression, Web-Http-Errors, Web-Http-Logging, Web-Http-Redirect, Web-Http-Tracing, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Lgcy-Mgmt-Console, Web-Metabase, Web-Mgmt-Console, Web-Mgmt-Service, Web-Net-Ext45, Web-Request-Monitor, Web-Server, Web-Stat-Compression, Web-Static-Content, Web-Windows-Auth, Web-WMI, Windows-Identity-Foundation, RSAT-ADDS
结果显示 Success: True 即为成功。
3.2 安装 Visual C++ 2013 和 .NET Framework 4.8
以管理员身份运行以下 PowerShell 脚本,自动下载并安装:
$tempDir = "C:\ExchangePrereqs"
New-Item -ItemType Directory -Force -Path $tempDir | Out-Null
Write-Host ">>> 下载 Visual C++ 2013 Redistributable..." -ForegroundColor Cyan
Invoke-WebRequest -Uri "https://aka.ms/highdpimfc2013x64enu" -OutFile "$tempDir\vcredist_x64.exe"
Write-Host ">>> 安装 Visual C++ 2013..." -ForegroundColor Cyan
Start-Process -FilePath "$tempDir\vcredist_x64.exe" -ArgumentList "/quiet /norestart" -Wait
Write-Host "Visual C++ 2013 安装完成" -ForegroundColor Green
Write-Host ">>> 下载 .NET Framework 4.8..." -ForegroundColor Cyan
Invoke-WebRequest -Uri "https://go.microsoft.com/fwlink/?LinkId=2085155" -OutFile "$tempDir\ndp48.exe"
Write-Host ">>> 安装 .NET Framework 4.8..." -ForegroundColor Cyan
Start-Process -FilePath "$tempDir\ndp48.exe" -ArgumentList "/quiet /norestart" -Wait
Write-Host ".NET Framework 4.8 安装完成" -ForegroundColor Green
Write-Host ">>> 清理临时文件..." -ForegroundColor Cyan
Remove-Item -Recurse -Force $tempDir
Write-Host "所有前置依赖安装完成!" -ForegroundColor Green
四、安装 Exchange Server 2019
-
挂载 Exchange Server 2019 ISO
-
以管理员身份运行
Setup.exe -
安装向导中选择"邮箱角色"
-
接受许可协议,选择安装路径
-
等待安装完成(约 30~60 分钟)
-
安装完成后重启服务器
五、创建邮箱用户
通过 Exchange 管理中心(EAC)
浏览器访问:https://<服务器IP>/ecp
收件人 → 邮箱 → 点击"+" → 用户邮箱 → 填写用户信息 → 保存
六、启用 IMAP/SMTP 服务并设置开机自启
在 PowerShell(管理员)中运行:
Start-Service MSExchangeIMAP4; Start-Service MSExchangeIMAP4BE; Set-Service MSExchangeIMAP4 -StartupType Automatic; Set-Service MSExchangeIMAP4BE -StartupType Automatic
验证端口
| 协议 | 端口 | 用途 |
|---|---|---|
| IMAP | 143 | 收信(STARTTLS) |
| IMAPS | 993 | 收信(SSL) |
| SMTP | 25 | 发信 |
| SMTP | 587 | 发信(STARTTLS) |
| SMTP | 465 | 发信(SSL) |
七、Java 客户端连接配置
{
"host": "YOUR_EXCHANGE_HOST",
"port": 993,
"protocol": "imaps",
"smtpHost": "YOUR_EXCHANGE_HOST",
"smtpPort": 587,
"smtpSslEnabled": false,
"sslTrustAll": true,
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD",
"fromAddress": "YOUR_FROM_ADDRESS",
"ntlmDomain": "YOUR_NTLM_DOMAIN",
"goatsRpaUrl": "http://tstgoats.gf.com.cn/api/uniweb/rpa/email",
"goatsClientId": "GOATS_OPTION_RFQ_RPA",
"goatsClientSecret": "test"
}
字段说明
| 字段 | 说明 |
|---|---|
host |
IMAP 收件服务器(Exchange IP 或域名) |
port |
IMAP 端口:SSL=993,STARTTLS=143 |
protocol |
收件协议:SSL 用 imaps,STARTTLS 用 imap |
smtpHost |
SMTP 发件服务器(通常与 host 相同) |
smtpPort |
SMTP 端口:STARTTLS=587,SSL=465 |
smtpSslEnabled |
false=STARTTLS/587,true=SSL/465 |
sslTrustAll |
自签证书填 true,CA 签发填 false |
username |
SAMAccountName(不带 @域名后缀) |
password |
账户密码 |
fromAddress |
发件人完整 SMTP 地址 |
ntlmDomain |
Windows 域 NetBIOS 名,不用 NTLM 填空字符串 |
注意:原始Administer用户不能用于收发邮件
常用管理命令
# 查看所有邮箱
Get-Mailbox
# 查看 Exchange 证书
Get-ExchangeCertificate | Select Thumbprint, Subject, Services
# 重启 IIS
iisreset
# 查看 IMAP 设置
Get-ImapSettings
设置邮件服务并发数限制
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn
Get-ReceiveConnector | Format-List Name, MessageRateLimit, MaxInboundConnectionPercentagePerSource, MaxMessagesPerConnection
Set-ReceiveConnector "Client Frontend I-4F67B17D" -MessageRateLimit 100
Set-ReceiveConnector "Client Proxy I-4F67B17D" -MessageRateLimit 100
批量创建账号
$pwd = ConvertTo-SecureString '@Test123.' -AsPlainText -Force
$db = Get-MailboxDatabase | Where-Object { $_.Mounted -eq $true } | Select-Object -First 1 -ExpandProperty Name
1..100 | ForEach-Object {
$n = 'gf-test{0:D3}' -f $_
New-Mailbox `
-Name $n `
-Alias $n `
-UserPrincipalName "$n@otchk.mail" `
-SamAccountName $n `
-DisplayName $n `
-PrimarySmtpAddress "$n@otchk.mail" `
-Database $db `
-Password $pwd
}
停止服务
# 停止所有 Exchange 相关服务
Get-Service *MSExchange* | Stop-Service -Force
# 查看状态
Get-Service *MSExchange* | Format-Table Name, Status, DisplayName -AutoSize
# 重新启动(只启动设为自动启动的那些)
Get-Service *MSExchange* | Where-Object {$_.StartType -eq 'Automatic'} | Start-Service
PS C:\Users\Administrator> Get-Service *MSExchange* | Format-Table Name, Status, DisplayName -AutoSize
>> ;
Name Status DisplayName
---- ------ -----------
MSExchangeADTopology Running Microsoft Exchange Active Directory 拓扑
MSExchangeAntispamUpdate Running Microsoft Exchange 反垃圾邮件更新
MSExchangeCompliance Running Microsoft Exchange 合规性服务
MSExchangeDagMgmt Running Microsoft Exchange DAG 管理
MSExchangeDelivery Running Microsoft Exchange 邮箱传输传递
MSExchangeDiagnostics Running Microsoft Exchange 诊断
MSExchangeEdgeSync Running Microsoft Exchange EdgeSync
MSExchangeFastSearch Running Microsoft Exchange 搜索
MSExchangeFlighting Running Microsoft Exchange 外部测试服务
MSExchangeFrontEndTransport Running Microsoft Exchange 前端传输
MSExchangeHM Running Microsoft Exchange 运行状况管理器
MSExchangeHMRecovery Running Microsoft Exchange 运行状况管理器恢复
MSExchangeImap4 Running Microsoft Exchange IMAP4
MSExchangeIMAP4BE Running Microsoft Exchange IMAP4 后端
MSExchangeIS Running Microsoft Exchange Information Store
MSExchangeMailboxAssistants Running Microsoft Exchange 邮箱助理
MSExchangeMailboxReplication Running Microsoft Exchange 邮箱复制
MSExchangeMitigation Running Microsoft Exchange 紧急缓解服务
MSExchangePop3 Stopped Microsoft Exchange POP3
MSExchangePOP3BE Stopped Microsoft Exchange POP3 后端
MSExchangeRepl Running Microsoft Exchange 复制
MSExchangeRPC Running Microsoft Exchange RPC 客户端访问
MSExchangeServiceHost Running Microsoft Exchange Service 主机
MSExchangeSubmission Running Microsoft Exchange 邮箱传输提交
MSExchangeThrottling Running Microsoft Exchange 限制
MSExchangeTransport Running Microsoft Exchange 传输
MSExchangeTransportLogSearch Running Microsoft Exchange 传输日志搜索