Я пытаюсь создать простое приложение 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 как (строка * строка), что может потребовать специальной обработки, когда это двоичные данные.
Как мне обработать загрузку двоичных файлов?
Спасибо всем заранее.