---
title: Contract
summary: The WSDL-declared operations, message types, faults, and binding of the called service.
status: draft
owner: SAIF.Core documentation
last_reviewed: 2026-09-24
---

# Contract

This page documents the contract of `clsSAIFMessage`† as `clsSAIFMessage1.wsdl` declares it, for the SOAP port type that svcutil generated (`clsSAIFMessageSoap`); the WSDL also declares HTTP GET and HTTP POST ports, which svcutil does not generate a client for and which are not documented here.

| Field | Value |
| --- | --- |
| **Service** | `clsSAIFMessage` |
| **WSDL document** | `Services/SAIF.Services.Web.Proxies/Service References/SMTP/clsSAIFMessage1.wsdl` |
| **SOAP namespace** | `http://www.saif.com` |
| **Port type / binding name** | `clsSAIFMessageSoap` (SOAP 1.1) / `clsSAIFMessageSoap12` (SOAP 1.2) |
| **Binding** | SOAP 1.1 and SOAP 1.2 over HTTP; the WSDL also declares HTTP GET and HTTP POST bindings, the default ASMX protocol set* |
| **Encoding style** | `Document` / `Literal` |
| **Parameter style** | Wrapped |
| **Operations declared** | 5 |

## Contract source

The contract is declared by `clsSAIFMessage1.wsdl`. svcutil generated the SOAP client `clsSAIFMessageSoapClient` from the `clsSAIFMessageSoap` port type in that document; the WSDL also declares HTTP GET and HTTP POST ports, which svcutil does not generate a client for and which are not documented further here.

## Operations

| Operation | SOAP action | Input message | Output message | Faults | Called in this repository |
| --- | --- | --- | --- | --- | --- |
| `SendMailAsText` | `http://www.saif.com/SendMailAsText` | `ToAddress, FromAddress, Subject, Message : string` | `void` (empty response) | None declared | No |
| `SendMail` | `http://www.saif.com/SendMail` | `ToAddress, FromAddress, Subject, Message : string` | `void` (empty response) | None declared | No |
| `SendWithAttach` | `http://www.saif.com/SendWithAttach` | `ToAddress, FromAddress, Subject, Message : string; Attachment : base64Binary; AttachName : string` | `void` (empty response) | None declared | No |
| `SendWithAttachAsText` | `http://www.saif.com/SendWithAttachAsText` | Same shape as `SendWithAttach` | `void` (empty response) | None declared | No |
| `SendEmail` | `http://www.saif.com/SendEmail` | `ToAddress, FromAddress, Subject, Message : string; isBodyHtml : boolean (required); attachments : ArrayOfClsAttachment; linkedResources : ArrayOfClsLinkedResource` | `void` (empty response) | None declared | No |

The WSDL documentation string for `SendMailAsText` is "Send SMTP Mail Message".

## Messages and types

| Type | Kind | Members | Used by |
| --- | --- | --- | --- |
| `clsAttachment` | Complex type | `File` (base64Binary), `Name` (string) | `SendEmail` |
| `clsLinkedResource` | Complex type | `ResourcePath` (string), `ContentID` (string) | `SendEmail` |

### clsAttachment

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `File` | base64Binary | Not stated in the WSDL | The attachment content |
| `Name` | string | Not stated in the WSDL | The attachment file name |

### clsLinkedResource

| Member | Type | Required | Purpose |
| --- | --- | --- | --- |
| `ResourcePath` | string | Not stated in the WSDL | A file-system path, not embedded content — the remote server presumably reads the resource from a path it can reach* |
| `ContentID` | string | Not stated in the WSDL | The MIME content ID the resource is linked by |

## Faults

The WSDL declares no faults on any operation, and every response element is an empty `complexType`.

## Binding details

| Aspect | Value |
| --- | --- |
| Transport | HTTP |
| Message version | SOAP 1.1 (`clsSAIFMessageSoap`); a SOAP 1.2 binding (`clsSAIFMessageSoap12`) is also declared |
| Security mode | None declared in the WSDL — `basicHttpBinding` default (`security mode="None"`) in the configured (unused) endpoint |
| Declared message size limits | None declared in the WSDL |

## Contract drift risk

| Aspect | Finding |
| --- | --- |
| WSDL captured at | Not determined from source |
| Live service documented by this run | No |
| Verification possible | Not determined from source |
| Consequence of drift | None in this repository — no code depends on this contract's shape |

## Related documentation
- [Client index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operation map](operation-map.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Dependencies](dependencies.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence.

## Sources
- `Services/SAIF.Services.Web.Proxies/Service References/SMTP/clsSAIFMessage1.wsdl`
- `Services/SAIF.Services.Web.Proxies/Service References/SMTP/Reference.cs`
