- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 pl/sql 程序,可以向许多人(20,000+)发送电子邮件。我的问题与 utl_mail 包有关,以及何时实际打开到电子邮件服务器的连接。
例子:
BEGIN
...
OPEN CUR_person;
FETCH CUR_person INTO REC_person;
WHILE CUR_person%FOUND
LOOP
UTL_MAIL.send(sender => 'me@address.com',
recipients => 'you@address.com',
subject => 'Test Mail',
message => 'Hello World',
mime_type => 'text/html');
FETCH CUR_person INTO REC_person;
END LOOP;
...
END;
/
最佳答案
UTL_MAIL
隐藏底层SMTP
API 是 UTL_SMTP
.通常为了易于使用而优选。如果你看到,UTL_SMTP
您会注意到您必须执行 utl_smtp.Rcpt
对于每个电子邮件地址,不幸的是它一次只接受一个电子邮件 ID。因此,对于多个电子邮件地址来说,基本逻辑是相同的,即遍历电子邮件地址并调用 utl_smtp.Rcpt
每个电子邮件地址。一个更好的解决方案是只使用电子邮件分发列表,即一个电子邮件 ID,其中包含一组其他电子邮件 ID。因此,使用 UTL_SMTP
它看起来像下面 -
declare
v_From VARCHAR2(80) := 'yourhelper@fun.com';
v_cc VARCHAR2(80) := 'gethelp@fun.com';
v_Recipient VARCHAR2(80) := 'yourhelper@fun.com';
v_Subject VARCHAR2(80) := 'test Subject';
v_Mail_Host VARCHAR2(50) := 'hub.fun.com';
v_Mail_Conn utl_smtp.Connection;
crlf VARCHAR2(2) := chr(13)||chr(10);
begin
v_Mail_Conn := utl_smtp.Open_Connection(v_Mail_Host, 25);
utl_smtp.Helo(v_Mail_Conn, v_Mail_Host);
utl_smtp.Mail(v_Mail_Conn, v_From);
utl_smtp.Rcpt(v_Mail_Conn, v_Recipient);
utl_smtp.Rcpt(v_Mail_Conn, v_cc); -- To CC recepient
utl_smtp.Data(v_Mail_Conn,
'Date: ' || to_char(sysdate, 'Dy, DD Mon YYYY hh24:mi:ss') || crlf ||
'From: ' || v_From || crlf ||
'Subject: '|| v_Subject || crlf ||
'To: ' || v_Recipient || crlf ||
'Cc: ' || v_cc || crlf ||
'Content-Type: text/html;' ||crlf ||
'Hello this is a test email');
utl_smtp.Quit(v_mail_conn);
end;
UTL_MAIL
可以接受逗号分隔的电子邮件地址,例如-
BEGIN
...
email_list VARCHAR2(10000) := NULL;
email_count NUMBER(10) := 0;
FOR c_rec in CUR_person
LOOP
email_list := c_rec.CUR_person || ' , ' || email_list;
email_count := email_count +1;
if (email_count = 100) --100 email ids at a time
then
UTL_MAIL.send(sender => 'me@address.com',
recipients => email_list,
subject => 'Test Mail',
message => 'Hello World',
mime_type => 'text/html');
email_list := NULL;
email_count := 0;
end if;
END LOOP
...
END;
/
关于sql - Oracle 10 何时打开 UTL_MAIL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12426439/
我在使用 Oracle 10g 中的 UTL_MAIL 包时遇到了一些问题,想知道是否有人有任何解决方案? 我以 SYSMAN 身份连接到我的数据库并加载以下两个脚本; @C:\oracle\prod
我有一个 pl/sql 程序,可以向许多人(20,000+)发送电子邮件。我的问题与 utl_mail 包有关,以及何时实际打开到电子邮件服务器的连接。 例子: BEGIN ... OPEN CUR_
我正在尝试使用 UTL_MAIL.Send 打包过程从 PL/SQL 程序发送电子邮件。但我收到以下错误: ORA-29278: SMTP transient error: 421 Service n
我们计划安装 UTL_MAIL 包,目前正在开发环境中测试安装步骤。 成功安装 UTL_MAIL 包脚本并创建足够的 PUBLIC Synonyms 和 Grants 后, 运行下面的测试匿名块时,我
我是一名优秀的程序员,十分优秀!