oracle 发邮件 存储过程

CREATE OR REPLACE PROCEDURE send_mail(

p_recipient VARCHAR2, -- 邮件接收人

p_subject   VARCHAR2, -- 邮件标题

p_message   VARCHAR2  -- 邮件正文

)

IS

--下面四个变量请根据实际邮件服务器进行赋值

v_mailhost  VARCHAR2(30) := ‘smtp.cheyipai.com‘;    --SMTP服务器地址

v_user      VARCHAR2(30) := ‘wangxuhui‘;            --登录SMTP服务器的用户名

v_pass      VARCHAR2(20) := ‘TWEATcE3D‘;             --登录SMTP服务器的密码

v_sender    VARCHAR2(50) := ‘[email protected]‘;    --发送者邮箱,一般与 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 || ‘>‘

|| UTL_TCP.CRLF || ‘To: ‘ || ‘<‘ || 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;

时间: 2024-10-15 17:55:30

oracle 发邮件 存储过程的相关文章

Oracle发邮件,权限问题

-- 创建 ACL BEGIN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL(acl => 'email_server_permissions.xml', description => 'Enables network permissions for the e-mail server', principal => 'LJZ', is_grant => TRUE, privilege => 'connect'); END; ? -- 与邮件服务关联 BE

如何通过Oracle实现自动发邮件功能

在内网项目.外网项目中多有 需要自动监控发邮件提醒的功能,因为邮件功能最便捷.便宜.不用开接口,不用接口费用.现 提供 我在一个内网项目中的使用案例: 案例背景: 在有限的资源下,能够自动给下级单位发布 数据考核评分(自动评分)和各 业务数据扣分 汇总统计后的数量(当然可进行拓展邮件信息) 案例工具: oracle;一个邮箱的对外服务调用地址:账号:密码: ----------------------------------------------------------------------

CentOS下自动发邮件检测某进程是否存在

目的:利用shell脚本每小时检测数据库是否在运行,当检测到库宕掉时发邮件告警. 1.检查sendmail是否在运行 service sendmail status 没有在运行则启动或安装. 如果是linux 6,则检查postfix是否在运行 service postfix status 2.pmon是oracle五大关键进程之一,如果pmon进程不存在则库一定是关闭了,下面就用脚本检测pmon是否存在. 脚本/root/check.sh如下: #!/bin/bash source .bash

SQL SERVER 2008配置Database Mail –用SQL 数据库发邮件

SQL SERVER 2008配置Database Mail –用SQL  数据库发邮件 https://blogs.msdn.microsoft.com/apgcdsd/2011/06/28/sql-server-2008database-mail-sql/ 原文来自:http://blog.sqlauthority.com/2008/08/23/sql-server-2008-configure-database-mail-send-email-from-sql-database/  Aug

DAY6 - os补充操作,发邮件,数据库操作,写excel,加密操作

1.Map-循环帮你调用函数 **生成器的概念** 输出为: map返回的就是一个生成器 2.filter-把函数处理结果为false的结果过滤掉 比较map和filter的输出: 3.os的目录操作 4.OS里执行系统命令 我们可能会用到的一个查看系统日志的命令: os.popen('top -n 1').read() 5.datetime模块 输出为: 输出为一个datetime的类型,如: 输出为: 6.Random模块 输出为: 7.Log模块 8.发邮件 第一步:需要先安装发邮件的模块

Linux发邮件之mail

1.安装 (需要sendmail或postfix服务) sendmail     # yum install sendmail      # systemctl start sendmail.service     # systemctl status sendmail.service postfix     # yum install mailx     # systemctl start postfix.service     # systemctl status postfix.servi

Linux发邮件

一.mail命令 1.配置 vim /etc/mail.rc 文件尾增加以下内容  set [email protected] smtp="smtp.qq.com"set smtp-auth-user="[email protected]" smtp-auth-password="123456"set smtp-auth=login 说明: from: 对方收到邮件时显示的发件人smtp: 指定第三方发送邮件的smtp服务器地址smtp-auth

用sql语句导出oracle中的存储过程和函数

用sql语句导出oracle中的存储过程和函数: SET echo off ; SET heading off ; SET feedback off ; SPOOL 'C:/PRC.SQL' replace SELECT CASE WHEN LINE = 1 THEN 'CREATE OR REPLACE ' || TEXT WHEN LINE = MAX_LINE THEN TEXT || CHR(10 ) || '/' ELSE TEXT END FROM USER_SOURCE A LEF

Ubuntu 带账号认证发邮件

Ubuntu带账号认证发邮件 安装heirloom-mailx # apt-get install heirloom-mailx 修改/etc/nail.rc(最后添加) set [email protected] set smtp=10.0.0.4 set [email protected] set smtp-auth-password=123456 set smtp-auth-login :wq # echo "bb" mail -s "aa" [email p