El paquete UTL_SMTP es de bajo nivel y requiere que en el procedimiento UTL_SMTP.DATA se deba componer el correo según la RFC821, incluyendo la fecha, por ejemplo:
Código:
declare
smtp_cnn utl_smtp.connection;
mesg varchar2(500);
begin
mail_conn := utl_smtp.open_connection( 'servidor_smtp', 25);
mesg := 'Date: ' || to_char( sysdate, 'dd-mm-yyyy') || chr(13) || chr(10) ||
'From: <[email protected]>' || chr(13) || chr(10) ||
'Subject: Asunto del correo'|| chr(13) || chr(10) ||
'To: cuenta2.dominio.com' || chr(13) || chr(10) ||
'Cuerpo del correo';
utl_smtp.helo(smtp_cnn, 'servidor_smtp');
utl_smtp.mail(smtp_cnn, '[email protected]');
utl_smtp.rcpt(smtp_cnn, 'cuenta2.dominio.com');
utl_smtp.data(smtp_cnn, mesg);
utl_smtp.quit(smtp_cnn);
end;
En tu caso, si no defines el valor de Date, es posible que la fecha "31 de diciembre de 1969" la ponga el servidor de correo. Por otro lado, si estás en Oracle 10.1 o superior, te recomiendo utilizar el paquete UTL_MAIL, que es de más alto nivel y amigable de programar.
Saludos