我正在尝试构建一个简单的 Suave.IO 应用程序来集中发送电子邮件。目前,该应用程序有一个端点,它将主题、正文、收件人、附件和发件人作为表单数据,并将它们转换为来自日志电子邮件帐户的 EWS 电子邮件消息。
在大多数情况下,一切都按预期工作,但是当附件之一是 excel 文件时,我会遇到文件损坏问题。在这些情况下,文件似乎已损坏。
目前,我将 request.multipartFields 过滤为仅标记为附件的文件,然后执行以下操作:
for (fileField: (string*string)) in fileFields do
let fname = (fst fileField)
let fpath = "uploadedFiles\\" + fname
File.WriteAllBytes(fpath, Encoding.ASCII.GetBytes (snd fileField)) |> ignore
然后在发送之前将文件路径和附件名称馈送到 EWS 消息中。
同样,这似乎适用于除二进制附件之外的所有附件。Suave.IO 似乎自动将所有 multiPartFields 编码为 (string*string),当它是二进制数据时可能需要特殊处理。
我应该如何处理二进制文件的上传?
提前谢谢大家。