Apex 23.1免费账户邮件配置:UTL_MAIL.send报错PLS-00201咨询
在apex.oracle.com免费账户解决邮件发送问题
错误原因说明
你遇到的PLS-00201: identifier 'UTL_MAIL.SEND' must be declared错误,本质是当前用户没有UTL_MAIL包的执行权限。但在apex.oracle.com的免费租户环境中,普通用户无法获取该权限——UTL_MAIL属于敏感系统包,需要DBA级操作授予,而免费账户不开放这类权限。
替代方案:使用Apex内置的APEX_MAIL包
Apex提供了专门的APEX_MAIL包用于邮件发送,默认已对Apex用户授予执行权限,无需额外申请,是免费环境下的标准解决方案。
配置Apex邮件步骤
- 登录apex.oracle.com,进入目标工作区。
- 进入「应用程序构建器」,打开你的应用。
- 点击应用主页右上角的齿轮图标(应用属性)。
- 在应用属性页面找到「邮件」板块,填写以下配置:
- SMTP主机地址:
smtp.apex.oracle.com - SMTP端口:
587 - 勾选「使用SSL/TLS」
- SMTP用户名、SMTP密码:留空即可(免费环境内置SMTP无需认证)
- SMTP主机地址:
- 保存应用属性。
发送邮件示例代码
使用APEX_MAIL发送邮件的PL/SQL示例:
BEGIN APEX_MAIL.SEND( p_to => '收件人邮箱@example.com', p_from => '你的工作区关联邮箱@xxx.com', -- 需为工作区绑定的合法邮箱 p_subject => '测试邮件', p_body => '这是纯文本格式的测试邮件。', p_body_html => '<p>这是<strong>HTML格式</strong>的测试邮件。</p>' ); APEX_MAIL.PUSH_QUEUE; -- 立即触发邮件发送,否则会按系统调度延迟发送 END; /
注意事项
- 发件人邮箱必须是与工作区关联的合法邮箱,否则邮件可能被拦截。
- 免费账户有邮件发送配额限制,请勿批量发送大量邮件,避免被平台限制。
- 可通过「监控」->「邮件日志」查看邮件发送状态和错误详情,排查问题。
内容的提问来源于stack exchange,提问作者Muhammad Awais Abbas
相关产品推荐
相关产品推荐

