【问题标题】:attach a remote file to an email in oracle apex在 oracle apex 中将远程文件附加到电子邮件
【发布时间】:2016-02-09 09:15:29
【问题描述】:

我知道可以使用带有以下代码附件的 apex 邮件通过 oracle apex 发送邮件 -

DECLARE
    l_id NUMBER;
BEGIN
    l_id := APEX_MAIL.SEND(
        p_to        => 'fred@flintstone.com',
        p_from      => 'barney@rubble.com',
        p_subj      => 'APEX_MAIL with attachment',
        p_body      => 'Please review the attachment.',
        p_body_html => '<b>Please</b> review the attachment');
    FOR c1 IN (SELECT filename, blob_content, mime_type 
        FROM APEX_APPLICATION_FILES
        WHERE ID IN (123,456)) LOOP

        APEX_MAIL.ADD_ATTACHMENT(
            p_mail_id    => l_id,
            p_attachment => c1.blob_content,
            p_filename   => c1.filename,
            p_mime_type  => c1.mime_type);
        END LOOP;
    COMMIT;
END;

 /

但是,我想将磁盘(操作系统)上的文件附加到通过 oracle apex 而不是 blob 内容发送的邮件中

        p_attachment => c1.blob_content,

即,我想在邮件中附加一个文件,例如 D:\sample.pdf 作为附件。

我想知道这是否可能,如果可能,那么如何?

【问题讨论】:

  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。请参阅How to Ask 页面以获得澄清此问题的帮助。
  • 您能否进一步阐明“远程文件”的含义。您提到“D:\”:这个文件是在数据库的磁盘上,还是在谈论存储在用户 PC 上的文件?
  • 我说的是存储在包含数据库的服务器的文件系统中的文件。而不是存储为 blob 我想将文件存储在文件系统中

标签: oracle-apex


【解决方案1】:

我从我的帖子here得到了答案

我使用以下方法发送邮件

DECLARE
    l_id NUMBER;
  l_bfile BFILE;   
  l_blob BLOB; 
   BEGIN

   DBMS_LOB.createtemporary(l_blob, TRUE); -- Initialize the BLOB. 

   l_bfile := BFILENAME('TEST', 'test.pdf'); 

   DBMS_LOB.fileopen(l_bfile, DBMS_LOB.file_readonly); 

    DBMS_LOB.loadfromfile(l_blob, l_bfile, DBMS_LOB.getlength(l_bfile)); 

    l_id := APEX_MAIL.SEND(
        p_to        => 'account@host.com',
        p_from      => 'account@host.com',
        p_subj      => 'APEX_MAIL with attachment',
        p_body      => 'Please review the attachment.',
        p_body_html => '<b>Please</b> review the attachment');



       APEX_MAIL.ADD_ATTACHMENT(
            p_mail_id    => l_id,
            p_attachment => l_blob,
            p_filename   => 'test.pdf',
            p_mime_type  => 'application/pdf');

   DBMS_LOB.fileclose(l_bfile); 

   DBMS_LOB.freetemporary(l_blob);


    COMMIT;
END;

【讨论】:

    猜你喜欢
    • 2014-06-25
    • 2016-01-22
    • 2018-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    相关资源
    最近更新 更多