2017-07-14 102 views
2

在Oracle Forms 11g上,我调用了一个过程,可以通过电子邮件发送表单中显示的数据。它复制电子邮件中的文本,并创建相同数据的.TXT附件。该电子邮件工作正常。但现在我想要将相同的数据附加为PDF文件而不是.TXT文件。Oracle Forms 11g - 以PDF格式发送电子邮件文件而不是TXT

以下是我所称的程序代码。

create or replace procedure send4 (p_sender IN VARCHAR2, p_recipient IN VARCHAR2, p_subject IN VARCHAR2, p_message IN VARCHAR2) 
IS 
crlf   VARCHAR2(2) := chr(13)||chr(10); 
l_mailhost VARCHAR2(255) := <IP ADDRESS>; 
v_connection    UTL_SMTP.connection; 

BEGIN 
V_CONNECTION := utl_smtp.open_connection(l_mailhost, 25); 
utl_smtp.Helo(V_CONNECTION, l_mailhost); 
utl_smtp.Mail(V_CONNECTION, p_sender); 
utl_smtp.Rcpt(V_CONNECTION, p_recipient); 
utl_smtp.Data(V_CONNECTION, 
'Date: ' || to_char(sysdate, 'Dy, DD Mon YYYY hh24:mi:ss') || crlf || 
'From: ' || p_sender || crlf || 
'Subject: '|| p_subject || crlf || 
'To: '  || p_recipient || crlf || 
'MIME-Version: 1.0'|| crlf || -- Use MIME mail standard 
'Content-Type: multipart/mixed;'|| crlf || 
' boundary="-----SECBOUND"'|| crlf || 
crlf || 
'-------SECBOUND'|| crlf || 
'Content-Type: text/plain;'|| crlf || 
'Content-Transfer_Encoding: 7bit'|| crlf || 
crlf || 
p_message|| crlf || 
crlf || 
'-------SECBOUND'|| crlf || 
'Content-Type: text/plain;'|| crlf || 
' name="file.txt"'|| crlf || 
'Content-Transfer_Encoding: 8bit'|| crlf || 
'Content-Disposition: attachment;'|| crlf || 
' filename="attachment.txt"'|| crlf || 
crlf || 
p_message|| crlf || -- Content of attachment 
crlf || 
'-------SECBOUND--'   -- End MIME mail 
); 
UTL_SMTP.quit(v_connection); 
EXCEPTION 
WHEN utl_smtp.Transient_Error OR utl_smtp.Permanent_Error then 
raise_application_error(-20000, 'Unable to send mail', TRUE); 
END; 

有人可以告诉我我在哪里进行了更改,以便创建PDF文件而不是TXT。我尝试调整代码,但每次尝试打开PDF文件时都会收到错误消息。

回答

0
  • 创建Oracle报告
  • 提交报告的工作报告引擎
  • 返回报表对象,并将其附加到电子邮件

创建报告允许您设置布局和通过将块where子句传递给报告,在屏幕上填充相同的数据。报表引擎将返回报表的jobid,然后可以通过使用表单级定时器触发器进行轮询来检查完成情况。报告完成后,将其添加为电子邮件的附件。

+1

谢谢您的回复。由于数据现在正在获取附加的文本文件,我希望我可以通过调整过程中的一些代码,如附件类型和/或解码数据或其他东西来将它附加为pdf文件。 – Shahzaib

+1

你能指导我如何在电子邮件中添加PDF文件吗? – Shahzaib

+0

我不认为有一种方法可以在某种工具之外创建PDF。 Oracle Reports可以创建PDF并输出到电子邮件。 [链接])http://docs.oracle.com/cd/E28389_01/bi.1111/b32121/pbr_cla002.htm)搜索电子邮件。您将使用的报告调用参数desformat = pdf DESTYPE = mail DESNAME =“[email protected]” – Dug720

相关问题