如何为通过批量电子邮件API发送的电子邮件附件生成多部分/表单数据

时间:2019-03-21 22:52:37

标签: delphi multipartform-data email-attachments delphi-2009

我正在尝试通过批量电子邮件发件人通过其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 ishere是一些我不熟悉的语言示例,尽管我可以有点了解C#。

我看过this questionthis one,以及其他很多内容,但是看不到使用Delphi 2009的任何相关示例。

0 个答案:

没有答案