Top

Name

smtp_send — send message to SMTP server

Synopsis

smtp_send ( in server string ,
  in sender string ,
  in recipient string ,
  in body string );
 

Description

Virtuoso can act as an SMTP client. This means that Virtuoso is able to send emails directly to a mail SMTP server. Virtuoso has a simple function to facilitate this. This can be called from stored procedures, VSP pages, triggers etc.

The sender and recipient email addresses must be enclosed with <..> and separated by commas i.e. string '<support@openlinksw.co.uk>,<sales@openlinksw.co.uk>'

The message Body contains headers such as Subject, From, To, Cc, Bcc and then continues with the actual message text itself. New lines can be added using '\r\n'

Example 24.377. Example:

'Subject: subject message\r\nFrom: sender\r\nTo: recipient\r\nCc:
copy\r\nBcc: copy\n\n body of message'

Virtuoso will pick up Subject and other headers from the body content. Note that the RFC insists there should be a NULL line between body headers and the message body text.


Example 24.378. Example:

smtp_send(
		'mail.example.com:25',
		'<sender@example.com>',
		'<receiver@example.com>',
		concat(
		  'X-Mailer: Virtuoso Universal Server\r\n',
			'Date: ', soap_print_box (now (), '', 1), '\r\n',
			'Message-ID: <', regexp_replace(cast(now() as varchar), '[- :.]', '', 1, null), '#some.vsp@example.com>\r\n',
			'Subject: This is a test mail...\r\n',
			'From: <sender@example.com>\r\n',
			'To: <receiver@example.com>\r\n',
			'\n',
			'Hi Receiver, this is a test message from Virtuoso')
	);

A more involved example. It is the responsibility of the developer to ensure that the message is correctly formed, complete with all necessary headers. This example shows a complete use of the function.