通过 oracle forms6i 发送邮件

Posted

技术标签:

【中文标题】通过 oracle forms6i 发送邮件【英文标题】:Sending mail via oracle forms6i 【发布时间】:2017-11-29 11:18:46 【问题描述】:

我有以下代码

Declare
  Outlook_Object OLE2.OBJ_TYPE;
  Mail_Object OLE2.OBJ_TYPE;

  Item1 OLE2.OBJ_TYPE;
  Item2 OLE2.OBJ_TYPE;

  OLEPARAM ole2.list_type;

  var_Send OLE2.OBJ_TYPE;
    var_exit OLE2.OBJ_TYPE;

  var_Attach1 OLE2.OBJ_TYPE;
  var_Attach2 OLE2.OBJ_TYPE;

BEGIN

SET_APPLICATION_PROPERTY(CURSOR_STYLE,'BUSY');

  Outlook_Object := OLE2.CREATE_OBJ('Outlook.Application'); 

  OLEPARAM := OLE2.CREATE_ARGLIST;
  OLE2.ADD_ARG(OLEPARAM,'MAPI');
  Mail_Object := OLE2.INVOKE_OBJ(Outlook_Object,'GetNameSpace',OLEPARAM);
  OLE2.DESTROY_ARGLIST( OLEPARAM );

--newMail
  OLEPARAM := OLE2.CREATE_ARGLIST;
  OLE2.ADD_ARG(OLEPARAM,0);
  Item1 := OLE2.INVOKE_OBJ(Outlook_Object,'CreateItem',OLEPARAM);
  OLE2.DESTROY_ARGLIST( OLEPARAM );

-- If you want to display outlook new message screen
-- Item2 := OLE2.INVOKE_OBJ(Item1,'Display');

  ole2.set_property(Item1,'To',:To);

  ole2.set_property(Item1,'Subject',:Subject);
  ole2.set_property(Item1,'Body',:Body);
 -- ole2.set_property(Item1,'Date',:F_DT);
  --ole2.set_property(Item1,'Date',:F_DT1);
   while :F_DT1 = sysdate 
   loop
    OLE2.RELEASE_OBJ( Item1);
    OLE2.RELEASE_OBJ( Mail_Object );
    OLE2.RELEASE_OBJ( Outlook_Object );
        var_Send := OLE2.INVOKE_OBJ(Item1,'Send');

        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');
        Message('Mail sent seccessfully.........');
        Message('Mail sent seccessfully.........');

        if :F_DT1 > :F_DT then
        exit_form;
        end if;
                F_DT1 := F_DT+1;
            end loop;
      end;
   I

此处 F_DT1 = 应发送邮件的日期。 F_DT = 应发送邮件的截止日期。 例如,我在 2017 年 12 月 8 日有活动,我需要从 2017 年 12 月 4 日收到它的提醒邮件,然后我将把 F_DT1 = 2017 年 12 月 4 日和 F_DT = 2017 年 12 月 8 日。

我没有遇到任何错误,但我也没有收到任何邮件。我的逻辑正确吗?

【问题讨论】:

【参考方案1】:

我更喜欢使用 UTL_MAIL(或 UTL_SMTP)包从数据库发送邮件。为什么?因为我知道如何做到这一点,而不是你使用的代码:)

显然,我无法解决最初的问题,但我可以提供一种解决方法。

我知道这是一个一个月前的问题,所以您可能已经解决了这个问题。如果没有,并且如果您需要有关 UTL_MAIL 的帮助,请说出来。

【讨论】:

以上是关于通过 oracle forms6i 发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

通过 php 脚本定期发送电子邮件

Spring通过Gmail SMTP服务器MailSender发送电子邮件

通过 Python Google Cloud Function 发送电子邮件的最佳方式是啥?

linux利用网易邮箱发送邮件

邮件发送平台哪个最好?一站式邮件发送平台推荐!

我似乎无法让我的表格成功通过电子邮件发送