APEX开发实践(六):APEX发送邮件功能的实现

APEX提供强大的邮件发送功能。可以通过预定义模板(mail template)的方式定制专属的邮件格式。然后通过调用APEX API进行邮件发送。

本文的应用场景是:在完成一项服务之后,向客户发送客户满意度反馈邮件。邮寄根据客户的区域,会自动选择发送中文,日文,韩文或英文的邮件。本应用场景会涉及到APEX的Dymanic Actions,Computation,PL/SQL,邮件模板(mail template)等知识点。

先看一下最后的邮件的效果:

图片

本文不讲述如何配置APEX的邮件服务。具体的配置,请点击以下链接参阅Oracle APEX的文档。

https://docs.oracle.com/en/database/oracle/application-express/20.1/aeadm/configuring-instance-settings.html#GUID-FEC98D5E-3C89-423E-9603-4CD2E553BA34

===== 1  创建邮件模板 =====

首先我们要在共享组件(Shared Components)里创建邮件模板。这个案例里涉及到4个语言的邮件。所以要创建4个邮件模板。下面就以中文邮件的模板为例。

图片

图片

点击新建邮件模板后,进入到模板设置界面。必填项是Template Name,Static Identifier,Email Subject(邮件标题)和Body。其中Static Identifier是作为在应用里调用模板的依据。例子如下

图片

接下来是要完成最重要的邮件主体。邮件的主体主要以HTML代码实现。其中Header和Footer不是必须的。另外,在Body中可以通过<b>, <br>, <tr>, <td>等标识,实现数据的表格化展现。

留意这个例子中Body里的两个变量:#cust_name##survey_template#。我们通过这两个变量实现邮件内容的客制化部分。

图片

在完成了邮件主体之后,APEX会在邮件模板的最下方自动生成API调用的脚本。我们在创建应用中需要使用到这个脚本。这个脚本中会调用APEX的API apex_mail.send( )。具体的用法,请查阅以下APEX文档。

https://docs.oracle.com/en/database/oracle/application-express/20.1/aeapi/APEX_MAIL.html#GUID-14F51C6D-CB82-4B38-AB6E-61C46E75596F

图片

===== 2  创建邮件发送表单 =====

首先,来看一下邮件发送表单长什么样子。

图片

这个邮件发送表单是被调用的,在调用的时候要传入客制化参数SR_NUM和SR_TITLE以及判断使用何种语言的地区参数REGION。表单的调用是通过点击“按钮”,所以在“按钮”的调用属性里定义要传入的Item

图片

===== 3 根据区域定义不同的语言 =====

这里要用到Computations的功能。

1,通过Computations的PL/SQL脚本,根据传入的REGION选择不同语言的邮件模板。

图片

留意Item P26_SEND_SURVEY及其赋值。这个会在后面调用apex_mail.send( )时用到。

2, 通过Computations的PL/SQL脚本,做字符串拼接,把传入的SR_NUM和SR_TITLE拼接到邮件模板中。同时,根据REGION拼接不同的语言。

图片

留意Item P26_PRE_TEXT_GEN及其赋值。接下来要把P26_PRE_TEXT_GEN做为P26_SURVEY_TEMPLATE的默认值显示在邮件发送表单里。

图片

P26_SURVEY_TEMPLATE会在后面调用apex_mail.send( )时用到。

注意:这两个Computations都必须放在“Before Regions”里。即,在这个表单被调用并初始化的时候就必须完成。

图片

===== 4 调用apex_mail.send ( )发送邮件 =====

最后,我们通过创建Processes来调用apex_mail.send ( )完成邮件的发送。

Processes的PL/SQL的脚本如下:

图片

请留意截屏中红框内的Item和参数。对应1,2,3节中的描述。

通过以上4步,实现APEX的个性化邮件发送功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值