我通过从Oracle Forms 11g传递参数来生成PDF格式的报告。我还要求自动通过电子邮件发送同一报告。以下是我传递参数的表单部分。
pl_id := Create_Parameter_List('tmpdata1');
add_parameter(pl_id, 'FDT', TEXT_PARAMETER, :a);
add_parameter(pl_id, 'TDT', TEXT_PARAMETER, :b);
add_parameter(pl_id, 'VC', TEXT_PARAMETER, :e);
add_parameter(pl_id, 'SYS_DATE', TEXT_PARAMETER, :f);
ADD_PARAMETER(pl_id,'DESTYPE',TEXT_PARAMETER,'FILE');
ADD_PARAMETER(pl_id,'DESFORMAT',TEXT_PARAMETER,'PDF');
ADD_PARAMETER(pl_id,'DESNAME',TEXT_PARAMETER,'C:\Downloads\abc.pdf');
现在,报告的副本将保存在C:\ Downloads文件夹中,并显示在浏览器中。
我使用以下程序通过电子邮件发送表格中显示的当前数据。
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;
1)我可以直接通过电子邮件发送报告吗?我试过传递参数&#39; MAIL&#39;和&#39;电子邮件地址&#39;在destype和desname,但我猜有一些设置需要做?
OR
2)如何使用电子邮件程序将所述报告作为附件发送?
OR
3)如何将用户PC中生成的报告pdf复制到服务器上的特定目录?因为我有一个单独的电子邮件程序,我可以直接从服务器邮寄PDF。用户有Windows PC而服务器是LINUX。
OR
4)直接在服务器上生成PDF格式的报告,以便我可以使用该程序(#3点)发送电子邮件吗?