docs

Home All functions Legacy functions Categories

vuSendMail()

Clarion prototype

Prototype: vuSendMail(*CSTRING InFrom, *CSTRING InTo, *CSTRING InCC, *CSTRING InBCC, *CSTRING InSubject, *CSTRING InBody, *CSTRING InAttach), SIGNED, PROC, PASCAL, RAW, NAME(‘vuSendMail’)

Purpose

Validates and queues one outbound email record to the SMTP worker queue.

Parameters

Parameter Type Description
InFrom *CSTRING Sender selector. You may pass a full mailbox, a plain email address, a display name only, or blank. See From selection rules below.
InTo *CSTRING Recipient email address list.
InCC *CSTRING CC address list.
InBCC *CSTRING BCC address list.
InSubject *CSTRING Message subject text.
InBody *CSTRING Message body text.
InAttach *CSTRING Optional attachment file path, comma/semicolon-separated attachment list, or wildcard mask.

Return value / error codes

Value Meaning
1 Message accepted/queued.
0 Queueing failed.
-2 Invalid From or To address format.
-451 vuMailKit detected conflicting .NET mail/runtime files in the application folder before the send operation.
-9001 vuMailKit licensing was not initialized.
-9002 license string is invalid or initialization failed.
-9003 current license tier does not allow this feature.

Example (Clarion)

rc      LONG
cFrom   CSTRING(256)
cTo     CSTRING(256)
cCC     CSTRING(256)
cBCC    CSTRING(256)
cSubj   CSTRING(256)
cBody   CSTRING(1024)
cAttach CSTRING(260)

cFrom = 'sender@example.com'
cTo = 'recipient@example.com'
cCC = ''
cBCC = ''
cSubj = 'Queue test'
cBody = 'Hello from vuSendMail'
cAttach = ''

rc = vuSendMail(cFrom, cTo, cCC, cBCC, cSubj, cBody, cAttach)
MESSAGE('vuSendMail rc=' & rc)

Notes

HTML example (Clarion source literal)

cBody = '<<html><<body><<h2>vuMailKit HTML Test<</h2>' & |
        '<<p>This is a test email sent by vuMailKit.<</p>' & |
        '<<ul><<li>First item<</li>' & |
        '<<li><<strong>Second item should be bold<</strong><</li><</ul>' & |
        '<</body><</html>'
cAttach = ''

Inline image example, local file path (Clarion source literal)

cBody = '<<html><<body><<p>Inline image test<</p>' & |
        '<<p><<img src="C:\Temp\test.jpg"><</p>' & |
        '<</body><</html>'
cAttach = ''

Inline image example, remote web image (Clarion source literal)

cBody = '<<html><<body><<p>Remote inline image test<</p>' & |
        '<<p><<img src="https://www.example.com/images/test.jpg"><</p>' & |
        '<</body><</html>'
cAttach = ''

Legacy inline-attachment embed example

cBody = '_embed attachments width=300 height=150_'
cAttach = 'C:\Temp\test.jpg'

For more body-image patterns, including external HTML files with images and wildcard image insertion from the Attach parameter, see Send an embedded image.

From display name behavior

From selection rules

vuSendMail() now resolves the effective sender using these rules:

This lets legacy applications keep working while also allowing per-message display-name overrides without repeating the stored profile address every time.

Notes on OAuth/profile sends

Home All functions Legacy functions Categories