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

MailKit(C#)中特定格式发件人地址导致From地址为空

MailKit获取特定格式发件人地址为空的解决方法

当发件人地址格式为MyExampledomain:DummyPerson <DummyPerson@mail.MyExampledomain.com>时,直接调用item.From.ToString()会返回空值,问题出在From是AddressList类型,直接调用其ToString()方法无法正确解析这种带自定义显示名称的地址格式。

解决思路是遍历AddressList中的地址项,强转为MailboxAddress后提取具体信息:

foreach (var item in Folder)
{
    // 处理From地址
    if (item.From != null && item.From.Count > 0)
    {
        foreach (var address in item.From)
        {
            if (address is MailboxAddress mailboxAddr)
            {
                // 提取显示名称和邮箱地址
                var displayName = mailboxAddr.Name; // 结果:MyExampledomain:DummyPerson
                var email = mailboxAddr.Address; // 结果:DummyPerson@mail.MyExampledomain.com
                // 拼接成完整地址字符串
                var fullFromAddress = $"{displayName} <{email}>";
                // 后续使用fullFromAddress即可
            }
        }
    }
}

原因说明:AddressList的ToString()方法在处理带特殊字符显示名称的地址时可能返回空,而MailboxAddress会正确解析显示名称和邮箱部分,即使显示名称包含冒号这类字符也不受影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:14:55