在客户网站上使用 MimeKit BodyBuilder 向电子邮件添加附件需要 20 秒

Adding an attachment to an email wite a MimeKit BodyBuilder takes 20 seconds on a customer site

提问人:Alan B 提问时间:8/14/2023 更新时间:8/15/2023 访问量:64

问:

我有一个使用 MimeKit 发送电子邮件的 .NET Windows 服务。它创建一个 BodyBuilder 并附加一个 PDF 文件:

builder.Attachments.Add(fileName);

其中“fileName”是 PDF 文件的完整路径和文件名。文件存在,大小为 300KB,服务可以访问它。当我使用相关文件在本地进行测试时,Add() 几乎是即时的。在具有已部署服务的客户服务器上,添加附件需要 20 秒,这意味着 SmtpClient 实例连接到的服务器在连接和身份验证发生后等待某些操作时超时。

是什么原因导致在开发机器和服务器之间附加一个小文件时存在如此巨大的差异?

C# Windows-Services Mailkit mimekit

评论


答:

0赞 jstedfast 8/15/2023 #1

有几种可能性:

  1. 磁盘存储访问速度慢
  2. RAM可用性低

建筑工人。Attachments.Add() 在内部将文件加载到 MemoryBlockStream 中,因此这两个因素都可能是一个因素。

评论

1赞 Alan B 8/15/2023
我的错误 - 根本不是 Mimekit 问题。我使用 Handlebars 模板构建了一个 HTML 正文,它指的是服务器上不再存在的图像文件,因此在 Windows 尝试解析文件名时延迟了 20 秒。