A consumer constructs SimpleCertifiedMailServiceProxy directly; it resolves its own endpoint from configuration and its own credential fallbacks. SAIF.Services.Web.Proxies, the library that carries this proxy, is itself consumed as a library within this run — see saif-services-web-proxies. The only in-repository consumer is SAIF.Services.Legal.Subpoenas.SubpoenaLabelService.
Environment setting SimpleCertifiedMailService.Url, read through IEnvironmentService
Binding
Constructed in code (BasicHttpBinding(Transport) with unbounded message size, buffer size, and array length)
Credentials
Transport: none. Application-level: UserName/Password/ClientCode/PartnerKey in the SOAP body, falling back to environment settings when not supplied by the caller
Initialization
Single-constructor — the wrapper resolves configuration and constructs the generated client together
Yes — read from configuration, but the key is not defined anywhere in this repository's configuration
Binding configuration
Constructed in code
SimpleCertifiedMailServiceProxy.cs:31-41
No — changing binding settings requires a rebuild
Security mode
Transport (HTTPS)
SimpleCertifiedMailServiceProxy.cs:31
No
The generated <client><endpoint name="ADSAPISoap"> in app.config (address="https://api.simplecertifiedmail.com/v3.2/ADS.asmx") is present but bypassed — the wrapper never uses the name-based constructor.
MaxReceivedMessageSize, MaxBufferSize, MaxArrayLength all int.MaxValue — effectively unbounded
No
SimpleCertifiedMailServiceProxy.cs:33-35
Yes
There is no client-side retry, so a transient failure fails the single attempt outright — the calling SubpoenaLabelService methods catch only SimpleCertifiedException (the in-band failure type), so a CommunicationException or TimeoutException propagates uncaught in most call paths. See Tech debt.
Not handled by the wrapper; SubpoenaLabelService.GenerateRecipientLabels/GenerateOpposingCounselLabel catch only SimpleCertifiedException, so this propagates
SOAP fault returned
FaultException*
Same as above — propagates
Timeout exceeded
TimeoutException*
Same as above — propagates
Response larger than the message size limit
Not applicable — limits are effectively unbounded
—
In-band failure (StatusCode != 1)
SimpleCertifiedException
Caught by SubpoenaLabelService, which emails support and, in GenerateRecipientLabels, skips the affected recipient
// SubpoenaLabelService.GenerateRecipientLabels — one label per recipienttry{_simpleCertifiedMailServiceProxy.SaveLabelAsGif(labelData,fileName);}catch(Proxy.SimpleCertifiedException){SendEmailForInvalidAddress(subpoena,recipient);}
Scenario
Operations used
Notes
Subpoena recipient labeling
getCertifiedLabel
One label per recipient; an in-band failure is emailed to support and the recipient is skipped, but the loop continues
Opposing-counsel labeling
getCertifiedLabel
An in-band failure is emailed to support, but the computed LabelSize is still returned, and the downstream OpposingCounselService may reference a .gif file that was never written
Note: Statements marked with * were inferred from code structure, naming
conventions, or contextual evidence where direct confirmation was not available
in source artifacts. Statements marked with ** could not be confirmed; treat
as unknown until verified.