Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用UTL_邮件发送SMTP参数在PLSQL中发送电子邮件错误:550 RBL-Oracle 11g_Oracle_Plsql_Smtp_Email Attachments_Utl Mail - Fatal编程技术网

使用UTL_邮件发送SMTP参数在PLSQL中发送电子邮件错误:550 RBL-Oracle 11g

使用UTL_邮件发送SMTP参数在PLSQL中发送电子邮件错误:550 RBL-Oracle 11g,oracle,plsql,smtp,email-attachments,utl-mail,Oracle,Plsql,Smtp,Email Attachments,Utl Mail,我想通过电子邮件发送新插入的审计表条目以及CSV格式的新插入数据。我使用插入后触发器跟踪插入的行,但我的代码无法发送电子邮件。它抛出了错误ORA-29279:SMTP永久性错误:550 RBL: >pr=1&ip=xxx.xxx.xxx.xx 我正在使用组织的电子邮件服务器。下面是我的代码: CREATE OR REPLACE TRIGGER emp_after_insert AFTER INSERT

我想通过电子邮件发送新插入的审计表条目以及CSV格式的新插入数据。我使用插入后触发器跟踪插入的行,但我的代码无法发送电子邮件。它抛出了错误ORA-29279:SMTP永久性错误:550 RBL: >pr=1&ip=xxx.xxx.xxx.xx

我正在使用组织的电子邮件服务器。下面是我的代码:

   CREATE OR REPLACE TRIGGER emp_after_insert
                   AFTER INSERT
                           ON scott.emp
                           FOR EACH ROW
                        enable
                       DECLARE
                          v_username varchar2(10);
                     v_no number(4);
                     v_name varchar2(10);
                 DIR_NAME  VARCHAR2(10):= 'UTL_FILE';
                 FILE_NAME  VARCHAR2(10):= 'EINFO.csv';
                 F1 UTL_FILE.FILE_TYPE;
                   PRESENT BOOLEAN;
                   FLENGTH NUMBER;
                   BSIZE PLS_INTEGER;
                 CNTR NUMBER:=0;
                   BEGIN
                    insert into scott.emp_audit(id,name,insertion_date) values(:new.empno,:new.ename,sysdate);
                    dbms_output.put_line('inserted');
           UTL_FILE.FGETATTR(LOCATION=>DIR_NAME,FILENAME=>FILE_NAME,
                FEXISTS=>PRESENT,FILE_LENGTH=>FLENGTH,
                BLOCK_SIZE=>BSIZE);
                IF PRESENT THEN
                F1:=UTL_FILE.FOPEN(DIR_NAME,FILE_NAME,'a');     ------APPEND MODE-
                UTL_FILE.PUT_LINE(F1,RPAD('',LENGTH(CURRENT_TIMESTAMP),''));
                ELSE
                F1:=UTL_FILE.FOPEN(DIR_NAME,FILE_NAME,'W');   -----WRITE MODE-----
                END IF;
           UTL_FILE.PUT_LINE(F1,RPAD(:new.empno,10,' ')||RPAD(:new.ename,10,' '));
         DBMS_OUTPUT.PUT_LINE('FILE CREATED ...'||FILE_NAME||'...AS ON ...'||CURRENT_TIMESTAMP);
         UTL_FILE.FCLOSE(F1);
          UTL_MAIL.send_attach_varchar2 (
       sender       => 'abc@gmail.com',
       recipients   => 'xyz123@gmail.com',
       subject      => 'UTL_MAIL Test',
       message      => 'If you get this message it worked!',
       attachment   => 'The is the contents of the attachment.',
       att_filename => 'C:\export\EINFO.csv'
     );
end;
我还执行
更改系统设置smtp\u out\u server='mail.abc.com'


还执行了utlmail和prvtmail的脚本。请帮忙

SMTP服务器正在拒绝电子邮件,而不是Oracle。查找SMTP错误550和实时黑洞列表(RBL-来自错误文本)。请详细说明如何执行此操作?据猜测,它认为这是垃圾邮件,因为您试图从gmail地址发送-该地址与您发送的服务器不匹配。如果你有一个来自你正在发送的域名的电子邮件地址,可以将其用作发件人,可能还带有回复标题。(同样,在你的帖子中有真正的email/host/IP也不是一个好主意。)你真的想为每个插入的行发送邮件吗?当用户进行回滚时会发生什么?邮件还是被发送了。DBMS_输出可能会引发其他错误。您的某些过程可能会在出现其他错误时发出提交。@WernfriedDomscheit是的,这是问题所在,但目前这是要求!