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文件时都会收到错误消息。
谢谢您的回复。由于数据现在正在获取附加的文本文件,我希望我可以通过调整过程中的一些代码,如附件类型和/或解码数据或其他东西来将它附加为pdf文件。 – Shahzaib
你能指导我如何在电子邮件中添加PDF文件吗? – Shahzaib
我不认为有一种方法可以在某种工具之外创建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