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

如何在C#中获取收件箱邮件内容,解决MailKit WriteTo路径访问报错

报错原因&修复方案

路径访问被拒错误修复

你当前写入文件时没有指定完整路径,系统默认尝试写入根目录/,普通应用没有该目录的写入权限,所以触发报错。你可以复用已经申请过权限的LocalApplicationData目录作为存储路径,修改写入逻辑即可:

// 构造有写入权限的完整文件路径
string savePath = Path.Combine(pathLog, $"{i}.msg");
message.WriteTo(savePath);

直接提取邮件正文(无需写入文件)

你不需要通过写入文件的方式读取邮件内容,MailKit的MimeMessage对象已封装好正文读取属性,直接调用即可:

  • 纯文本格式正文:读取message.TextBody属性
  • HTML格式正文:读取message.HtmlBody属性

你也可以直接获取其他常用邮件字段:

// 邮件主题
string subject = message.Subject;
// 发件人信息
string from = message.From.ToString();
// 收件人信息
string to = message.To.ToString();
// 纯文本正文
string plainTextContent = message.TextBody;
// HTML正文
string htmlContent = message.HtmlBody;

修正后完整代码示例

try 
{
    string pathLog = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData);
    string fileNameLog = Path.Combine(pathLog, "pop3.txt");
    using (var client = new Pop3Client(new ProtocolLogger(fileNameLog)))     
    {
        strProgress = strProgress + "c";
        client.Connect("outlook.office365.com", 995, SecureSocketOptions.SslOnConnect);

        strProgress = strProgress + "d";
        client.Authenticate("xxx", "yyy");
        strProgress = strProgress + "e";

        for (int i = 0; i < client.Count; i++)
        {
            strProgress = strProgress + "f";
            var message = client.GetMessage(i);
            strProgress = strProgress + "g";

            // 直接提取正文,无需写入文件
            string emailContent = message.TextBody ?? message.HtmlBody;
            // 这里可以直接处理emailContent,比如存入数据库、展示到UI等
            // 如果你确实需要存文件,改用以下路径即可
            // string savePath = Path.Combine(pathLog, $"{i}.msg");
            // message.WriteTo(savePath);
            
            numCountEmailsDownloaded = numCountEmailsDownloaded + 1;
        }
        client.Disconnect(true);
    }
}
catch (Exception ex)
{
    Toast.MakeText(this, ex.Message + "\n\nStopped after " + strProgress, ToastLength.Long).Show();
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:54:03