一尘不染

在oracle 10g中发送电子邮件

jsp

嗨,我有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中的任何一个,并且应附加字符串“
relocated”

请帮我坦克


阅读 233

收藏
2020-06-08

共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_HOSTSMTP_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
2020-06-08