【问题标题】:Send .csv file as attachment through UTL_MAIL.Send通过 UTL_MAIL.Send 将 .csv 文件作为附件发送
【发布时间】:2017-11-15 04:32:00
【问题描述】:

我在本地驱动器上有一个文件,比如说 C:\test\att.csv。我已经配置了 PL/SQL 程序来从数据库中收集数据并发送电子邮件。 att.csv 文件包含一些我作为电子邮件附件发送的值。你能帮我怎么做吗?以下是我当前的代码。

EXECUTE IMMEDIATE 'ALTER SESSION SET smtp_out_server = ''abcd.abc.ab''';
  UTL_MAIL.send(sender => 'XXX@abc.com',
            recipients => 'xxx@abc.com',
               subject => 'Test Databases'',
               message =>  v_htmlbody,
               mime_type => 'text/html; charset=us-ascii');

【问题讨论】:

    标签: csv email plsql attachment utl-mail


    【解决方案1】:
    1. 要使用UTL_MAIL 发送附件,您需要使用UTL_MAIL.send_attach_rawUTL_MAIL.send_attach_varchar2。要传递的参数参考https://docs.oracle.com/database/121/ARPLS/u_mail.htm#ARPLS71208,包括attachmentatt_filename。这些过程要求附件的数据以 RAW 或 VARCHAR2 格式提供。

    2. 如果附件在数据库服务器的本地磁盘上,您可以使用UTL_FILE 加载数据。参考:https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS069

    【讨论】:

    • 嗨,杰弗里,感谢您的回复。我之前浏览过这些文章。我只是对如何将我的代码(如上所示)与文件附件逻辑结合起来感到困惑。因为我的文件已经在磁盘上,我只需要将它作为电子邮件的附件发送。如果你能给我一个在我当前的代码中使用附件的例子,那就太好了。
    • 您的代码没有调用正确的过程来发送附件,也没有从文件中加载任何数据。使用 UTL_FILE 加载数据。
    • 谢谢杰弗里,让我检查一下。我会就此与您联系。
    猜你喜欢
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 2015-06-20
    • 1970-01-01
    • 1970-01-01
    • 2017-07-05
    • 2018-10-20
    • 2015-12-21
    相关资源
    最近更新 更多