С# передача файла в теле POST запроса

145
16 июля 2018, 19:40

Возникла задача отправлять email напрямую из программы. По мимо просто текста прикреплять файл лога к письму. Решил использовать сторонний шлюз и через API выполнять указанную задачу. С отправкой просто текста(небольших объёмов текста) проблем нет, а вот процедуру вложения не могу осилить.
В доках к API написано:

Если при отправке планируется передача каких-либо файлов, то их необходимо передавать методом POST в теле http-запроса к серверу.

Итого пришел к такому:

WebRequest link = WebRequest.Create(server);
            link.Method = "POST";
            link.Headers.Add("login",cfg.sms_router_user);
            link.Headers.Add("psw", cfg.sms_router_pwd);
            link.Headers.Add("phones", cfg.sms_router_email);
            link.Headers.Add("mes", mes);
            link.Headers.Add("sender", CALBACK_EMAIL);
            link.Headers.Add("subj",subj);
            link.Headers.Add("mail","1");
            link.Timeout = 100000;
            link.ContentType = "multipart/form-data";
            FileStream file = new FileStream(path_file,FileMode.Open,FileAccess.ReadWrite);
            byte[] rData = new byte[file.Length];
            file.Read(rData,0,rData.Length);
            link.ContentLength = rData.Length;
            Stream sendTR = link.GetRequestStream();
            sendTR.Write(rData,0,rData.Length);
            sendTR.Close();

По итогу получаю ошибку "неверные параметры". Может я не верно понял слова передавать в теле) наставьте на путь истинный .

Если не прикреплять файл, то отправка письма проходит GET запросом

send.php?login=<login>&psw=<password>&phones=<phones>&mes=<message>&sender=<sender>&subj=<subj>&mail=1

Я так понял что через метод POST тоже нужно указывать эти параметры и плюс файл вложения в теле POST запроса

READ ALSO
C# System.IO unauthorizedaccessexception

C# System.IO unauthorizedaccessexception

Делаю поиск файла на всех дисках доступных на компе:

167
Как сделать бэкап из .bak файла?

Как сделать бэкап из .bak файла?

Как выгрузить данные из databasebak в базу данных? Иcпользую ASP

187
Блок-схема всего проекта(C# Unity)

Блок-схема всего проекта(C# Unity)

Хотелось бы сократить время "вникания" в новый проект на 500+ классовЕсть ли какая то возможность в Unity, или просто в проекте Visual Studio, наглядно...

207
Из БД MSSQL удалить все ссылки

Из БД MSSQL удалить все ссылки

В БД tсть поле product_description, в котором содержится описание товара в текстовом форматеНо попадаются и внешние ссылки, которые надо удалить из описания

163