项目上有一个需求,当培训课开始报名时,需要向相关的人员发送邮件来通知大家,不是手动,而是在数据库定点自动发送邮件。
实现思路:在存储过程里面向发送邮件相关的表里面添加数据,然后当添加数据时在触发器触发发送邮件的事件,即调用发送邮件的存储过程,发送邮件的存储过程如下:
PROCEDURE P_SEND_MAIL(p_recipient VARCHAR2, -- 邮件接收人
p_subject VARCHAR2, -- 邮件标题
p_message VARCHAR2 -- 邮件正文
) IS
--下面四个变量请根据实际邮件服务器进行赋值
v_mailhost VARCHAR2(30) := ' '; --SMTP服务器地址
v_user VARCHAR2(30) := ' '; --登录SMTP服务器的用户名;只是用户名,
v_pass VARCHAR2(20) := ' '; --登录SMTP服务器的密码
v_sender VARCHAR2(50) := ' '; --发送都邮箱,一般与 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() 而