IEmailService1.pas
上传用户:netnetfish
上传日期:2021-01-14
资源大小:413k
文件大小:3k
源码类别:

Delphi/CppBuilder

开发平台:

Delphi

  1. // ************************************************************************ //
  2. // The types declared in this file were generated from data read from the
  3. // WSDL File described below:
  4. // WSDL     : http://webservices.matlus.com/scripts/emailwebservice.dll/wsdl/IEmailService
  5. // Version  : 1.0
  6. // (2002-11-20 15:14:26 - $Revision:   1.9.1.0.1.0.1.9  $)
  7. // ************************************************************************ //
  8. unit IEmailService1;
  9. interface
  10. uses InvokeRegistry, Types, XSBuiltIns;
  11. type
  12.   // ************************************************************************ //
  13.   // The following types, referred to in the WSDL document are not being represented
  14.   // in this file. They are either aliases[@] of other types represented or were referred
  15.   // to but never[!] declared in the document. The types from the latter category
  16.   // typically map to predefined/known XML or Borland types; however, they could also 
  17.   // indicate incorrect WSDL documents that failed to declare or import a schema type.
  18.   // ************************************************************************ //
  19.   // !:string          - "http://www.w3.org/2001/XMLSchema"
  20.   // !:int             - "http://www.w3.org/2001/XMLSchema"
  21.   // ************************************************************************ //
  22.   // Namespace : urn:EmailIPortTypeInft-IEmailService
  23.   // soapAction: urn:EmailIPortTypeInft-IEmailService#SendMail
  24.   // transport : http://schemas.xmlsoap.org/soap/http
  25.   // style     : rpc
  26.   // binding   : IEmailServicebinding
  27.   // service   : IEmailServiceservice
  28.   // port      : IEmailServicePort
  29.   // URL       : http://webservices.matlus.com/scripts/emailwebservice.dll/soap/IEmailservice
  30.   // ************************************************************************ //
  31.   IEmailService = interface(IInvokable)
  32.   ['{DE379B44-6D5F-C03E-DC2A-035AD0651C54}']
  33.     function  SendMail(const ToAddress: String; const FromAddress: String; const ASubject: String; const MsgBody: String): Integer; stdcall;
  34.   end;
  35. function GetIEmailService(UseWSDL: Boolean=System.False; Addr: string=''): IEmailService;
  36. implementation
  37.   uses SOAPHTTPClient;
  38. function GetIEmailService(UseWSDL: Boolean; Addr: string): IEmailService;
  39. const
  40.   defWSDL = 'http://webservices.matlus.com/scripts/emailwebservice.dll/wsdl/IEmailService';
  41.   defURL  = 'http://webservices.matlus.com/scripts/emailwebservice.dll/soap/IEmailservice';
  42.   defSvc  = 'IEmailServiceservice';
  43.   defPrt  = 'IEmailServicePort';
  44. var
  45.   RIO: THTTPRIO;
  46. begin
  47.   Result := nil;
  48.   if (Addr = '') then
  49.   begin
  50.     if UseWSDL then
  51.       Addr := defWSDL
  52.     else
  53.       Addr := defURL;
  54.   end;
  55.   RIO := THTTPRIO.Create(nil);
  56.   try
  57.      if UseWSDL then
  58.     begin
  59.       RIO.WSDLLocation := Addr;
  60.       RIO.Service := defSvc;
  61.       RIO.Port := defPrt;
  62.     end else
  63.       RIO.URL := Addr;
  64.     Result := (RIO as IEmailService);
  65.   finally
  66.     if Result = nil then
  67.       RIO.Free;
  68.   end;
  69. end;
  70. initialization
  71.   InvRegistry.RegisterInterface(TypeInfo(IEmailService), 'urn:EmailIPortTypeInft-IEmailService', '');
  72.   InvRegistry.RegisterDefaultSOAPAction(TypeInfo(IEmailService), 'urn:EmailIPortTypeInft-IEmailService#SendMail');
  73. end.