`
xiaomogui
  • 浏览: 242718 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle基础之发送邮件

阅读更多

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配置邮件自动发送的方法

    在Oracle数据库管理中,设置邮件自动发送是一项重要的任务,它能帮助DBA(数据库管理员)及时获取数据库的状态信息、警告和错误报告。Oracle 10g企业管理器(Grid Control)提供了一个集成的邮件通知功能,使得...

    Oracle+发送邮件存储过程

    ### Oracle 发送邮件存储过程详解 在IT领域,数据库与应用程序之间的邮件通知功能是一个常见的需求。Oracle数据库提供了强大的工具和API来实现这一功能,其中包括利用存储过程发送邮件的能力。本篇将深入解析一个...

    利用Oracle数据库发送邮件的实例代码

    在Oracle数据库中发送邮件是一项常见的任务,特别是在自动化通知或数据报告方面。Oracle提供了一套名为UTL_SMTP的内置包,允许我们通过SMTP(简单邮件传输协议)与邮件服务器交互来发送邮件。以下是一个利用Oracle...

    oracle之监控报警

    综上所述,Oracle的监控报警机制涵盖了多种工具和技术,从基础的警报日志到复杂的性能分析工具,再到灵活的邮件报警配置。理解和熟练运用这些功能,对于提升数据库的管理和维护效率至关重要。通过持续监控和适时的...

    Oracle.9i中文版基础教程

    共分为十一章,第一章都有相关的操作文档 适合初学oracle的程员 配套PDF图书 第五章是介绍jinit11810.exe 哪附件打包一起,有点大,上传不上去, 所以就删了, 想要的可以给我发邮件,我用信箱给你传。

    基于VC++和Oracle数据库的邮件管理系统的设计与实现.7z

    在邮件管理系统中,C++可能被用来实现系统的基础架构,如用户接口、数据处理逻辑、邮件的发送和接收等模块。学习C++时,需要掌握类与对象的概念、继承、多态、模板等特性,并且熟悉STL(Standard Template Library)...

    ORACLE EBS 开发基础

    ### ORACLE EBS 开发基础知识点详解 #### 一、Oracle EBS简介 Oracle E-Business Suite (EBS) 是一套全面的企业管理解决方案,涵盖了财务管理、供应链管理、项目管理、人力资源管理和客户服务等多个方面。对于EBS...

    深入浅出Oracle EBS之XML Publisher

    ### 深入浅出Oracle EBS之XML Publisher #### 一、BIPublisher基础 ##### 1.1 读者基础要求 对于希望学习Oracle EBS中的XML Publisher的读者而言,具备以下基础知识是非常有帮助的: - **Oracle数据库**:熟悉...

    oracle-workflow实力详解

    - **核心组件**:作为 EBS 的基础架构技术之一,几乎所有的业务流程都依赖于 Oracle Workflow。 - **集成性**:紧密集成于 EBS 的各个模块中,如财务管理、供应链管理等。 - **灵活性**:支持高度定制化的业务...

    jsp+oracle通讯录

    【jsp+oracle通讯录】是一个...它涵盖了Web开发中的前端展示、后端处理以及数据库操作等基础概念,对于初学者来说,通过实践这个项目,可以深入理解JSP和Oracle数据库的协同工作方式,为今后的Web开发打下坚实的基础。

    博主推荐C# Winform定时发送邮箱(附源码)

    支持对oracle数据定时查询,然后把查询结果发送邮箱;2.灵活可配置,日志目录,数据库相关连接,展示的字段,展示的格式,发送的邮箱,表格的风格等; 3.可以在此基础上,支持扩展,定时查询数据(任何数据库),...

    邮件管理_源代码_jsp+oracle经典实例

    在邮件管理系统中,Oracle将存储用户的邮件信息,包括发件人、收件人、主题、内容、时间戳等,同时可能还包括用户账户信息、权限设置等数据。使用Oracle的优点在于其强大的数据处理能力和安全性。 在本实例中,...

    Spotlight.On.Oracle

    2. **报警与预警**:当数据库出现异常或潜在问题时,该工具会通过电子邮件、短信或系统通知等方式发送预警,让用户提前采取措施。 3. **深入分析**:Spotlight On Oracle具备深度诊断功能,可以分析SQL语句执行效率...

    Oracle Solaris 11.1 Managing sendmai lServices in Oracle Solaris

    在Oracle Solaris 11.1中管理sendmail服务涉及一系列关键知识点,这些知识点对于系统管理员来说至关重要,尤其是在处理企业级邮件系统时。sendmail是Unix和类Unix系统上广泛使用的邮件传输代理(MTA),它负责在本地...

    Oracle协作办公套件

    借助Oracle 9i的强大基础设施,该套件提供了可靠的安全性,并能与用户现有的客户端应用(如Outlook)无缝集成,同时提供迁移工具以便从其他流行服务器(如Exchange、Notes、GroupWise、OpenMail)平滑过渡。...

    Oracle_备份脚本

    1. Linux基础命令:包括邮件服务配置、目录管理、文件权限设置。 2. Oracle EXP实用程序:用于数据库对象的导出备份。 3. Shell脚本编程:实现自动化备份流程,包括变量定义、条件判断、文件操作等。 4. 磁盘空间...

    oracle bi publisher开发指南

    - **报表分发(Report Distribution)**:BI Publisher支持定时任务和即时报告,可以将报告自动发送到电子邮件、文件系统或Web服务器。 - **权限管理(Security and Access Control)**:通过角色和权限设置,控制...

    经典Oracle 9i 课件

    Oracle 9i是Oracle公司发布的一个重要版本,它在数据库管理、性能优化、安全性以及网络支持等方面都有着显著的提升和创新。...如果你在学习过程中遇到任何问题,可以随时发送邮件至doelse@126.com寻求帮助。

    oracle 10g

    - 发送邮件服务 Sendmail 可能会影响数据库性能,建议关闭该服务。 ```bash # chkconfig sendmail off ``` **3. 检查交换分区大小:** - 检查交换分区大小是否符合要求。 ```bash # grep SwapTotal /proc/...

Global site tag (gtag.js) - Google Analytics