Mail¶
Mail is a Public Module — the sole public-facing component of SAIF.Framework.Mail. It provides a simplified static API for sending email through the legacy clsSAIFMessage.asmx SOAP mail service, with overloads for subject-only, subject+body, HTML/plain-text, and attachment (stream, file path, byte array) variants. All members are shared module-level functions/constants; the module holds no state between calls.
Purpose¶
- Provide a single, simplified entry point for sending email without requiring callers to interact with the generated
SAIFMail.clsSAIFMessageSOAP proxy directly.
Context¶
- Namespace:
SAIF.Framework.Mail - Assembly/package:
SAIF.BOF.Framework.Mail
Public members¶
| Member | Signature | Purpose |
|---|---|---|
STANDARD_DISCLAIMER |
Public Const STANDARD_DISCLAIMER As String |
Standard email disclaimer/confidentiality notice text for callers to append to message bodies. |
DO_NOT_REPLY |
Public Const DO_NOT_REPLY As String |
Auto-reply notice text indicating the message was auto-generated and should not be replied to. |
SendMail |
Function SendMail(inToAddress As String, inFromAddress As String, inSubject As String, Optional isHtml As Boolean = True) As Boolean |
Sends a subject-only message (empty body); HTML by default per BR-002. |
SendMail |
Function SendMail(inToAddress As String, inFromAddress As String, inSubject As String, inMessage As String, Optional isHtml As Boolean = True) As Boolean |
Sends a message with a subject and a body; HTML by default per BR-002. |
SendMailWithOptions |
Function SendMailWithOptions(inToAddress As String, inFromAddress As String, inSubject As String, isHtml As Boolean, Optional attachments As SAIFMail.clsAttachment() = Nothing, Optional linkedResources As SAIFMail.clsLinkedResource() = Nothing) As Boolean |
Sends a message with optional attachments/linked resources and no body; delegates to the body overload with String.Empty. |
SendMailWithOptions |
Function SendMailWithOptions(inToAddress As String, inFromAddress As String, inSubject As String, inMessage As String, isHtml As Boolean, Optional attachments As SAIFMail.clsAttachment() = Nothing, Optional linkedResources As SAIFMail.clsLinkedResource() = Nothing) As Boolean |
Sends a full-featured message with a body plus optional attachments/linked resources via the proxy's SendEmail SOAP operation. |
SendMailWithAttachment |
Function SendMailWithAttachment(inToAddress As String, inFromAddress As String, inSubject As String, inStream As Stream, inAttachName As String) As Boolean |
Sends a message with a subject and a stream attachment, no body; converts the stream via GetStreamAsBytes before calling SendWithAttach. |
SendMailWithAttachment |
Function SendMailWithAttachment(inToAddress As String, inFromAddress As String, inSubject As String, inMessage As String, inStream As Stream, inAttachName As String) As Boolean |
Sends a message with a subject, body, and a stream attachment; converts the stream via GetStreamAsBytes before calling SendWithAttach. |
SendMailWithAttachment |
Function SendMailWithAttachment(inToAddress As String, inFromAddress As String, inSubject As String, inMessage As String, inFilePath As String, inAttachName As String) As Boolean |
Sends a message with a subject, body, and a file-path attachment; reads the file via GetFileAsBytes before calling SendWithAttach. |
SendMailWithAttachment |
Function SendMailWithAttachment(inToAddress As String, inFromAddress As String, inSubject As String, inMessage As String, inAttachment() As Byte, inAttachName As String) As Boolean |
Sends a message with a subject, body, and an already-materialized byte-array attachment directly via SendWithAttach. |
GetFileAsBytes |
Function GetFileAsBytes(inPath As String) As Byte() |
Internal utility: reads a file at inPath into a byte array via a FileStream; always closes the stream in Finally, but re-throws the original exception via Throw ex per BR-004. |
GetStreamAsBytes |
Function GetStreamAsBytes(inStream As Stream) As Byte() |
Internal utility: reads an already-open stream into a byte array; returns Nothing for a Nothing input per BR-005. |
Behavioral notes¶
- Every
Send*function follows the same fixed sequence: instantiateSAIFMail.clsSAIFMessage→ resolve.UrlfromAppGlobal.EnvironmentService.GetConfigSetting("legacyMailServiceUrl")per BR-001 → invoke one SOAP operation (SendMail,SendMailAsText,SendWithAttach, orSendEmail) → dispose the proxy → returnTrue. - All
Send*functions returnTrueregardless of the SOAP call's actual outcome, per BR-003; no exception handling or success/failure branching surrounds the SOAP invocation itself.* - The module holds no state between calls — each function creates and disposes its own
SAIFMail.clsSAIFMessageproxy instance rather than sharing a client.*
Constraints and usage notes¶
- Callers cannot rely on the
Booleanreturn value to confirm actual delivery success; only an unhandled exception from the underlying SOAP call would signal failure.* - The
legacyMailServiceUrlenvironment configuration setting must be resolvable at runtime, or the SOAP proxy falls back to the design-time default URL baked intoapp.config/My.Settings. - Attachment overloads accepting a
Streamor file path convert their input to a byte array before the SOAP call; very large files/streams are read entirely into memory.*
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.
Sources¶
- SAIF.Framework.Mail\MailServices.vb