CREATE OR REPLACE PROCEDURE PRC_sendmail(p_receiver VARCHAR2, -- 邮件接收人                                          p_subject  VARCHAR2, -- 邮件标题                                          p_message  VARCHAR2 -- 邮件正文                                          ) IS   --下面四个变量请根据实际邮件服务器进行赋值   v_smtphost VARCHAR2(30) := 'smtp.qq.com'; --SMTP服务器地址(hotmail为smtp.live.com,测试未通过)   v_smtpport number(5) := 25; --smtp服务端口   v_user     VARCHAR2(30) := '45@qq.com'; --登录SMTP服务器的用户名   v_pass     VARCHAR2(20) := 'xiyuan'; --登录SMTP服务器的密码   v_sender   VARCHAR2(50) := '45@qq.com'; --发送者邮箱,一般与 ps_user 对应   v_conn     UTL_SMTP.connection; --到邮件服务器的连接   v_msg      varchar2(4000); --邮件内容

BEGIN

v_conn := UTL_SMTP.open_connection(v_smtphost, v_smtpport);   --是用 ehlo() 而不是 helo() 函数   --否则会报:ORA-29279: SMTP 永久性错误: 503 5.5.2 Send hello first.   UTL_SMTP.ehlo(v_conn, v_smtphost);

-- smtp服务器登录校验   UTL_SMTP.command(v_conn, 'AUTH LOGIN');   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_receiver || '>');

-- 创建要发送的邮件内容 注意报头信息和邮件正文之间要空一行   v_msg := 'Date:' || TO_CHAR(SYSDATE, 'yyyy mm dd hh24:mi:ss') ||            UTL_TCP.CRLF || 'From: ' || v_sender || '' || UTL_TCP.CRLF ||            'To: ' || p_receiver || '' || 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);     UTL_SMTP.quit(v_conn);   END PRC_sendmail;

执行脚本:

SQL > exec PRC_sendmail(p_receiver => '751365252@qq.com', p_subject => 't张ttt', p_message => 'yy在yy');

oracle 邮件发送的更多相关文章

  1. 【Java EE 学习 21 下】【使用java实现邮件发送、邮件验证】

    一.邮件发送 1.邮件发送使用SMTP协议或者IMAP协议,这里使用SMTP协议演示. SMTP协议使用的端口号:25 rfc821详细记载了该协议的相关信息 (1)使用telnet发送邮件(使用12 ...

  2. java实现smtp邮件发送

    一.准备工作 首先你需要已一个发送邮箱,一般的邮箱都有SMTP.POP3服务,比如QQ邮箱,登陆QQ邮箱开启SMTP服务,开启是服务器会提示你设置独立密码,这个密码是跟邮箱正常登陆的密码不同的,这个是 ...

  3. PL/SQL 下邮件发送程序

    对DBA而言,尽管在os级别下发送邮件是轻而易举的事情,然而很多时候我们也需要在PL/SQL中来发送邮件,比如监控job的执行状况等.本文根据网友(源作者未考证)的代码将其改装并封装到了package ...

  4. JavaMail API 1.4.7邮件发送

    下载oracle javaMail API: http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive- ...

  5. JavaMail邮件发送不成功的那些坑人情况及分析说明

    [我的Segmentfault原文]https://segmentfault.com/a/1190000008030346 前言   JavaMail的使用本身并不难,网上有不少案例,简单易懂,而且有 ...

  6. testng + reportng 测试结果邮件发送

    https://blog.csdn.net/qq744746842/article/details/51497506 其实大多数的时候我们的测试报告的发送可能都是结合Jenkins发送的,所以这方面更 ...

  7. Oracle邮件推送函数

    CREATE OR REPLACE PROCEDURE PROCSENDEMAIL ( P_TXT VARCHAR2, P_SUB VARCHAR2, P_SENDOR VARCHAR2, P_REC ...

  8. Java 基于JavaMail的邮件发送

    http://blog.csdn.net/xietansheng/article/details/51673073 http://blog.csdn.net/xietansheng/article/d ...

  9. Java Mail邮件发送的简单实现

    1.什么是java mail JAVA MAIL是利用现有的邮件账户发送邮件的工具,通过JAVA Mail的操控,让程序自动的使用设置的邮箱发送邮件. 这一机制被广泛的用在注册激活和垃圾邮件的发送等方 ...

随机推荐

  1. 上传到github!

    今天课上在冯老师的带领下终于在github上成功上传了东西但是还有很多没用的东西,慢慢研究改进! https://github.com/Hxy94264/GitHubTest https://gith ...

  2. 关于vue.js中事件处理器的练习

    html: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8 ...

  3. ubuntu 安装mongodb

    安装 mongodb sudo apt-get install mongodb 创建目录(放在单独文件夹中) mkdir data/aa 在目录外面启动,端口为27017 mongod -dbpath ...

  4. UML类图分析

    继承: 实现: 关联: 依赖: 组合: 聚合:

  5. halcon运行版设置

  6. Orchard学习笔记

    1.下载Orchard sourcrs资源文件,同时也可以去百度下载中文包 资源地址(https://github.com/OrchardCMS/Orchard/releases/download/1 ...

  7. svn提交报e200007错误

    org.apache.subversion.javahl.ClientException: svn: E200007: Commit failed异常解决,svncommitfailed 首先2分钟前 ...

  8. 转载:详细解析Java中抽象类和接口的区别

    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和int ...

  9. Selenium2入门(三)WebDriver API之Get

    在上面的例子中,我们看到了WebDriver的一些方法,今天列举WebDriver的Get方法: import java.util.Set; import org.openqa.selenium.We ...

  10. ASP.NET在IIS7.5(IIS7)配置伪静态

    http://jingyan.baidu.com/article/67508eb4ff92c69cca1ce49a.html 我相信不少站长都遇到个头疼的问题..NET如何在IIS7或者IIS7.5下 ...