You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在自研Flutter邮件客户端中对接Zimbra实现邮件收发功能?

Zimbra服务端配置步骤
  • 登录Zimbra后台(访问地址http://<服务器IP>:7071,用admin@mail.privacy.com账号登录),依次进入「Configure」→「Global Settings」→「POP3」,勾选「Enable POP3 service」,默认加密端口为995、非加密端口为110,推荐使用995加密端口,保存配置。
  • 切换到「SMTP」标签页,勾选「Enable SMTP service」以及「Allow authentication for external clients」,SMTP加密端口默认465(SSL)、587(STARTTLS),推荐使用587端口,保存配置。
  • 放行服务器端口:Ubuntu 18.04 系统执行以下命令开放端口,如果你用了云服务商安全组,需要同步放行这两个端口的入站规则:
ufw allow 995/tcp
ufw allow 587/tcp
ufw reload
  • 确认账号权限:进入「Manage」→「Accounts」,找到你用于收发邮件的业务账号,右键点击「Edit」,在「Features」标签下确认勾选了「Enable POP3」和「Enable SMTP Authentication」权限,保存修改。
ASP.NET Core代码修改

你不需要改动核心业务逻辑,只需要修改SMTP、POP3的连接配置即可:

Send()方法调整

using (var smtp = new SmtpClient())
{
    // 替换<你的Zimbra服务器IP/域名>为实际地址,比如mail.privacy.com或者公网IP
    // 587端口使用STARTTLS加密,第三个参数useSsl传false,Mailkit会自动升级加密连接
    smtp.Connect("<你的Zimbra服务器IP/域名>", 587, false);
    // 填写Zimbra完整邮箱账号和对应密码,比如admin@mail.privacy.com
    smtp.Authenticate("<Zimbra完整邮箱账号>", "<Zimbra邮箱密码>");
    await smtp.SendAsync(message);
    smtp.Disconnect(true);
}

ReceiveEmail()方法调整

using(var emailClient = new Pop3Client())
{
    // 替换<你的Zimbra服务器IP/域名>为实际地址,995端口为SSL加密,第三个参数传true
    emailClient.Connect("<你的Zimbra服务器IP/域名>", 995, true);
    // 填写Zimbra完整邮箱账号和对应密码
    emailClient.Authenticate("<Zimbra完整邮箱账号>", "<Zimbra邮箱密码>");
    // 后续原有业务逻辑完全不用修改
}
注意事项
  • 测试阶段如果你的Zimbra用的是自签名SSL证书,Mailkit默认证书校验会失败,可以在Connect方法前加一行代码跳过证书校验(仅测试用,生产环境建议替换为受信任CA颁发的证书):
// SMTP和POP3连接都可以加这行配置
smtp.ServerCertificateValidationCallback = (s, c, h, e) => true;
  • 生产环境建议不要用admin账号作为业务收发账号,单独创建普通权限邮箱账号使用,降低安全风险。

内容的提问来源于stack exchange,提问作者jackshooter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 05:45:08