Anyone any experience of using UTL_SMTP to send mail via a Windows Exchange/Outlook server?

Used a procedure from Tom Kyte:

CREATE OR REPLACE PROCEDURE send_mail
(p_sender IN VARCHAR2,
p_recipient IN VARCHAR2,
p_message IN VARCHAR2)
AS
l_mailhost VARCHAR2(255) := '** IP address of our mail server **';
l_mail_conn UTL_SMTP.connection;
BEGIN
l_mail_conn := utl_smtp.open_connection(l_mailhost, 25);
UTL_SMTP.helo (l_mail_conn, l_mailhost);
utl_smtp.mail (l_mail_conn,p_sender);
utl_smtp.rcpt (l_mail_conn,p_recipient);
utl_smtp.open_data (l_mail_conn);
utl_smtp.write_data (l_mail_conn,p_message);
utl_smtp.close_data (l_mail_conn);
utl_smtp.quit (l_mail_conn);
END;

Execute this, passing in valid email addresses and a message text.

The mail is sent but no message text (P_message) appears in the body of the email.

Any ideas?