我正在尝试通过批量电子邮件发件人通过其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分段/表单数据文件上传
其中一个例子说
您需要在发送请求中的“多部分/表单数据POST”字段中提供附件
但是我对在Delphi 2009中如何做到这一点一无所知。我已经看到StackOverflow提到了答案,尤其是this post解释了如何制作TIdMultiPartFormDataStream
。
请,有人可以帮助我提供代码,以将流“插入”到我发送给API的网址中吗?
在另一个StackOverflow问题中的一条评论说,OP应该提供指向API文档的链接,因此here it is和here是一些我不熟悉的语言示例,尽管我可以有点了解C#。
我看过this question和this one,以及其他很多内容,但是看不到使用Delphi 2009的任何相关示例。