1. 很早以前从网上找的,没有具体用过。
CREATE OR REPLACE PROCEDURE send_mail(
p_recipient VARCHAR2, -- 邮件接收人
p_subject VARCHAR2, -- 邮件标题
p_message VARCHAR2 -- 邮件正文
)
IS
--下面四个变量请根据实际邮件服务器进行赋值
v_mailhost VARCHAR2(30) := '192.168.12.19';--'mail.abc.com'; --SMTP服务器地址
v_user VARCHAR2(30) := 'asi.dfouzhou@163.com'; --登录SMTP服务器的用户名
v_pass VARCHAR2(20) := 'mima'; --登录SMTP服务器的密码
v_sender VARCHAR2(50) := 'asi.dfou@163.com'; --发送者邮箱,一般与 ps_user 对应
v_conn UTL_SMTP.connection; --到邮件服务器的连接
v_msg varchar2(4000); --邮件内容
BEGIN
v_conn := UTL_SMTP.open_connection(v_mailhost, 25);
UTL_SMTP.ehlo(v_conn, v_mailhost); --是用 ehlo() 而不是 helo() 函数
--否则会报:ORA-29279: SMTP 永久性错误: 503 5.5.2 Send hello first.
UTL_SMTP.command(v_conn, 'AUTH LOGIN'); -- smtp服务器登录校验
UTL_SMTP.command(v_conn,UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw(v_user))));
UTL_SMTP.command(v_conn,UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(UTL_RAW.cast_to_raw(v_pass))));
UTL_SMTP.mail(v_conn, v_sender); --设置发件人
UTL_SMTP.rcpt(v_conn, p_recipient); --设置收件人
-- 创建要发送的邮件内容 注意报头信息和邮件正文之间要空一行
v_msg :='Date:'|| TO_CHAR(SYSDATE, 'dd mon yy hh24:mi:ss')
|| UTL_TCP.CRLF || 'From: '|| v_sender || '<' || v_sender || '>'
|| UTL_TCP.CRLF || 'To: ' || p_recipient || '<' || p_recipient || '>'
|| UTL_TCP.CRLF || 'Subject: ' || p_subject
|| UTL_TCP.CRLF || UTL_TCP.CRLF -- 这前面是报头信息
|| p_message; -- 这个是邮件正文
UTL_SMTP.open_data(v_conn); --打开流
UTL_SMTP.write_raw_data(v_conn, UTL_RAW.cast_to_raw(v_msg)); --这样写标题和内容都能用中文
UTL_SMTP.close_data(v_conn); --关闭流
UTL_SMTP.quit(v_conn); --关闭连接
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line(DBMS_UTILITY.format_error_stack);
DBMS_OUTPUT.put_line(DBMS_UTILITY.format_call_stack);
END send_mail;
邮件测试脚本.tst
declare
-- Local variables here
i integer;
begin
-- Test statements here
begin
-- Call the procedure
send_mail(p_recipient => '####@163.com',
p_subject => '测试邮件',
p_message => '收到邮件请回复,真的假的啊');
end;
end;
分享到:
相关推荐
在Oracle数据库管理中,设置邮件自动发送是一项重要的任务,它能帮助DBA(数据库管理员)及时获取数据库的状态信息、警告和错误报告。Oracle 10g企业管理器(Grid Control)提供了一个集成的邮件通知功能,使得...
### Oracle 发送邮件存储过程详解 在IT领域,数据库与应用程序之间的邮件通知功能是一个常见的需求。Oracle数据库提供了强大的工具和API来实现这一功能,其中包括利用存储过程发送邮件的能力。本篇将深入解析一个...
在Oracle数据库中发送邮件是一项常见的任务,特别是在自动化通知或数据报告方面。Oracle提供了一套名为UTL_SMTP的内置包,允许我们通过SMTP(简单邮件传输协议)与邮件服务器交互来发送邮件。以下是一个利用Oracle...
综上所述,Oracle的监控报警机制涵盖了多种工具和技术,从基础的警报日志到复杂的性能分析工具,再到灵活的邮件报警配置。理解和熟练运用这些功能,对于提升数据库的管理和维护效率至关重要。通过持续监控和适时的...
共分为十一章,第一章都有相关的操作文档 适合初学oracle的程员 配套PDF图书 第五章是介绍jinit11810.exe 哪附件打包一起,有点大,上传不上去, 所以就删了, 想要的可以给我发邮件,我用信箱给你传。
在邮件管理系统中,C++可能被用来实现系统的基础架构,如用户接口、数据处理逻辑、邮件的发送和接收等模块。学习C++时,需要掌握类与对象的概念、继承、多态、模板等特性,并且熟悉STL(Standard Template Library)...
### ORACLE EBS 开发基础知识点详解 #### 一、Oracle EBS简介 Oracle E-Business Suite (EBS) 是一套全面的企业管理解决方案,涵盖了财务管理、供应链管理、项目管理、人力资源管理和客户服务等多个方面。对于EBS...
### 深入浅出Oracle EBS之XML Publisher #### 一、BIPublisher基础 ##### 1.1 读者基础要求 对于希望学习Oracle EBS中的XML Publisher的读者而言,具备以下基础知识是非常有帮助的: - **Oracle数据库**:熟悉...
- **核心组件**:作为 EBS 的基础架构技术之一,几乎所有的业务流程都依赖于 Oracle Workflow。 - **集成性**:紧密集成于 EBS 的各个模块中,如财务管理、供应链管理等。 - **灵活性**:支持高度定制化的业务...
【jsp+oracle通讯录】是一个...它涵盖了Web开发中的前端展示、后端处理以及数据库操作等基础概念,对于初学者来说,通过实践这个项目,可以深入理解JSP和Oracle数据库的协同工作方式,为今后的Web开发打下坚实的基础。
支持对oracle数据定时查询,然后把查询结果发送邮箱;2.灵活可配置,日志目录,数据库相关连接,展示的字段,展示的格式,发送的邮箱,表格的风格等; 3.可以在此基础上,支持扩展,定时查询数据(任何数据库),...
在邮件管理系统中,Oracle将存储用户的邮件信息,包括发件人、收件人、主题、内容、时间戳等,同时可能还包括用户账户信息、权限设置等数据。使用Oracle的优点在于其强大的数据处理能力和安全性。 在本实例中,...
2. **报警与预警**:当数据库出现异常或潜在问题时,该工具会通过电子邮件、短信或系统通知等方式发送预警,让用户提前采取措施。 3. **深入分析**:Spotlight On Oracle具备深度诊断功能,可以分析SQL语句执行效率...
在Oracle Solaris 11.1中管理sendmail服务涉及一系列关键知识点,这些知识点对于系统管理员来说至关重要,尤其是在处理企业级邮件系统时。sendmail是Unix和类Unix系统上广泛使用的邮件传输代理(MTA),它负责在本地...
借助Oracle 9i的强大基础设施,该套件提供了可靠的安全性,并能与用户现有的客户端应用(如Outlook)无缝集成,同时提供迁移工具以便从其他流行服务器(如Exchange、Notes、GroupWise、OpenMail)平滑过渡。...
1. Linux基础命令:包括邮件服务配置、目录管理、文件权限设置。 2. Oracle EXP实用程序:用于数据库对象的导出备份。 3. Shell脚本编程:实现自动化备份流程,包括变量定义、条件判断、文件操作等。 4. 磁盘空间...
- **报表分发(Report Distribution)**:BI Publisher支持定时任务和即时报告,可以将报告自动发送到电子邮件、文件系统或Web服务器。 - **权限管理(Security and Access Control)**:通过角色和权限设置,控制...
Oracle 9i是Oracle公司发布的一个重要版本,它在数据库管理、性能优化、安全性以及网络支持等方面都有着显著的提升和创新。...如果你在学习过程中遇到任何问题,可以随时发送邮件至doelse@126.com寻求帮助。
- 发送邮件服务 Sendmail 可能会影响数据库性能,建议关闭该服务。 ```bash # chkconfig sendmail off ``` **3. 检查交换分区大小:** - 检查交换分区大小是否符合要求。 ```bash # grep SwapTotal /proc/...