Я экспериментирую с отправкой писем через отправителя электронной почты через их API.
Код, который в данный момент работает для отправки простого электронного письма, таков (INetHttp1
имеет тип TINetHttp
):
procedure TForm1.GenerateSendMailRequest;
var
fullURL, s : string;
Stream: TIdMultiPartFormDataStream;
begin
try
Stream.AddFile('attachfile','C:\Users\Admin\Documents\age breakdown plot.pdf','<multipart/alternative>');
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
fullURL := 'https://api.elasticemail.com/v2/email/send'
+'?apikey=e123456-cacb-4456-112a-d145e7f55a47'
+'&subject=test 3 from elastic mail'
+'&from=myemail.co.uk'
+'&To=recipient1@hotmail.com;recipient2@gmail.com'
+'&bodyText=this is the body of the mail';
//?? how do I get the stream into the URL?
try
INetHttp1.Flags := [flSecure];
INetHttp1.Verb := veGet;
INetHttp1.Url := fullURL;
INetHttp1.Open;
INetHttp1.OpenRequest;
INetHttp1.SendRequest;
s := string(INetHttp1.ReadData);
finally
INetHttp1.Close;
Stream.free
end;
ShowMessage(s) //show server reponse
end;
Чтобы включить вложение (мое будет PDF-файл), их документация API гласит:
Прикрепить файл как POST multipart / form-data file upload
В одном из примеров написано
Вам необходимо предоставить вложения в качестве поля POST Multipart / Form-Data в вашем запросе на отправку
Но я не совсем понимаю, как это сделать в Delphi 2009. Я видел ответы StackOverflow, в которых упоминается об этом, и в частности в этом посте объясняется, как сделать TIdMultiPartFormDataStream
.
Пожалуйста, кто-нибудь может мне помочь с кодом для вставки этого потока в URL, который я отправляю в API?
Комментарий в другом вопросе StackOverflow гласил, что OP должен давать ссылку на документы API, поэтому здесь это , а здесь некоторые примеры на языках, которые я не являюсь знаком с, хотя я могу как-то понять C # один.
Я смотрел на этот вопрос и на этот , а также на множество других, но не вижу соответствующих примеров, используя Delphi 2009.