您好我有2张桌子,他们的输出如下
table1:
userID Email address
Rakesh rakesh.k@xyz.com
hari hari.m@xyz.com
abc abc@xyz.com
table2:
subject1
subject2
subject3
我想要一个查询从abc(我以abc登录到我的网站)发送电子邮件到Rakesh或hari(基于我从jsp中选择),主题为表2中的任何一个,它应该附加字符串“再分配”
请帮我坦克
答案 0 :(得分:1)
要从数据库发送电子邮件,您需要使用UTIL_SMTP
或其他一些电子邮件协议进行操作。对于UTIL_SMTP
创建一个过程如下
create or replace PROCEDURE send_mail (P_SENDER in varchar2,
P_RECIPIENT in varchar2,
P_CC in varchar2,
P_SUBJECT in varchar2,
P_MESSAGE in varchar2) is
mailhost varchar2(30) := 'xxx.xxx.xx.xx';
mail_conn utl_smtp.connection;
crlf varchar2(2) := CHR(13)||CHR(10);
mesg varchar2(4000);
BEGIN
mail_conn := utl_smtp.open_connection(mailhost,25);
mesg := 'Date: '||to_char(sysdate,'dd Mon yy hh24:mi:ss' )||crlf||
'FROM: '||P_SENDER||'>'||crlf||'Subject: '||P_SUBJECT||crlf||
'To: '||P_RECIPIENT||crlf||
'Cc: '||P_CC||crlf||crlf||P_MESSAGE;
utl_smtp.helo(mail_conn,mailhost);
utl_smtp.mail(mail_conn,P_SENDER);
utl_smtp.rcpt(mail_conn,P_RECIPIENT);
utl_smtp.rcpt(mail_conn,P_CC);
utl_smtp.data(mail_conn,mesg);
utl_smtp.quit(mail_conn);
END send_mail;
/
您可以从系统管理员处获取SMTP_HOST
和SMTP_PORT
。 SMTP_PORT默认为25。一旦你有了,你可以执行你的程序
exec send_mail('abc@xyz.com',
'rakesh.k@xyz.com',
'hari.k@xyz.com',
'<Your subject>',
'<Your message>');
如果要调用从JSP发送电子邮件的过程,可以调用该过程并将参数从JSP传递给过程。如果要使用select语句发送电子邮件,请将函数包装在函数中并执行函数
select <yourfunction(params)> from dual