---
title: Consumption
summary: How a consuming application references, constructs, calls, and disposes the proxy.
status: draft
owner: SAIF.Core documentation
last_reviewed: 2026-09-24
---

# Consumption

No repository source constructs or calls `SMTP`. `SAIF.Services.Web.Proxies`, the library that carries this proxy, is itself consumed as a library within this run — see [`saif-services-web-proxies`](../../libraries/saif-services-web-proxies/overview.md) — but no code in that library or elsewhere in this repository references `clsSAIFMessageSoapClient`.

## Reference style

| Field | Value |
| --- | --- |
| Mechanism | Service Reference (svcutil) |
| Declared in | `Services/SAIF.Services.Web.Proxies/SAIF.Services.Web.Proxies.csproj` |
| Generated artifacts | `Services/SAIF.Services.Web.Proxies/Service References/SMTP/` |
| Target framework | .NET Framework 4.6.2 |
| Regeneration command | Visual Studio "Update Service Reference" |

## Construction

No repository source constructs this proxy. A parameterless construction would find two endpoints configured for its contract (`clsSAIFMessageSoap` and `clsSAIFMessageSoap12`) and throw `InvalidOperationException` (ambiguous endpoint)*; a caller would have to construct it with an explicit endpoint name.

| Step | Requirement |
| --- | --- |
| Endpoint address | Not applicable — never constructed |
| Binding | Not applicable — never constructed |
| Credentials | Not applicable — never constructed |
| Initialization | Not applicable — never constructed |

## Endpoint configuration

| Setting | Value | Source | Changeable without a rebuild |
| --- | --- | --- | --- |
| Endpoint address (`clsSAIFMessageSoap`) | `http://webqa/sendmail/clsSAIFMessage.asmx` | `Services/SAIF.Services.Web.Proxies/app.config:57` | Not applicable — never used |
| Endpoint address (`clsSAIFMessageSoap12`) | Same address, `customBinding` | `app.config:58` | Not applicable — never used |
| Security mode | `None` (default `basicHttpBinding`) | `app.config:9` | Not applicable — never used |

The library `app.config` scope means these endpoints would not even be present in a consuming host's configuration at runtime, even if a caller existed.

## Resilience

| Concern | Finding | Configurable by consumer | Source | Tech debt |
| --- | --- | --- | --- | --- |
| Timeout | Not applicable — never constructed | No | — | No |
| Retry | Not applicable — never constructed | No | — | No |
| Circuit breaking | Not applicable — never constructed | No | — | No |
| Thread safety | Not applicable — never constructed | — | — | No |
| Cancellation | Not applicable — never constructed | — | — | No |
| Message size limits | Not applicable — never constructed | No | — | No |

## Disposal

| Aspect | Finding |
| --- | --- |
| Disposal performed | Not applicable — never constructed |
| Faulted channel handled | Not applicable |
| Wrapper responsibility | Not applicable — no wrapper exists |
| Source | — |

## Error handling for consumers

Not applicable — there is no call site to fail.

## Usage examples

No repository source constructs or calls this proxy, so no in-repository usage example can be drawn from source. The following example is **hypothetical** — it is not present anywhere in this repository — and shows the construction a caller would need to perform to disambiguate the two endpoints configured in `app.config:57-58`, based on the generated constructor overloads in `Reference.cs` and the endpoint names declared in `app.config`.

```csharp
// Hypothetical example — no repository source performs this construction or call.
using (var client = new SMTP.clsSAIFMessageSoapClient("clsSAIFMessageSoap"))
{
    client.SendMail(
        toAddress: "recipient@example.com",
        fromAddress: "sender@example.com",
        subject: "Subject line",
        message: "Message body");
    client.Close();
}
```

| Scenario | Operations used | Notes |
| --- | --- | --- |
| Hypothetical plain-text send | `SendMail` | Illustrates disambiguating the endpoint by name, per [Consumption](consumption.md#construction); not exercised anywhere in this repository |

## Lifecycle guidance

| Question | Answer |
| --- | --- |
| Construct once or per call | Not applicable — no repository source constructs this proxy |
| Disposable | Yes (`IDisposable`, inherited from `ClientBase<T>`) — not exercised in this repository |
| Safe to share across threads | Not determined from source |

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

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources
- `Services/SAIF.Services.Web.Proxies/app.config`
- `Services/SAIF.Services.Web.Proxies/Service References/SMTP/Reference.cs`
