How to send email if cursor limit exceeds
Hi,
i got an issue like if my cursor limit exceeds, i have to get an email with the error.
i gave ALTER SYSTEM SET open_cursors = 400 SCOPE=BOTH;
can any one please help me out.
Thanks & Regards,
Lak.
You can send a mail for ORA-01000 with the help of a trigger. I have written the trigger in the schema level.
SQL> conn scott@orclsb
Enter password: *****
Connected.
SQL>
SQL> /** The databse version in which this executed **/
SQL>
SQL> SELECT * FROM v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
SQL> /** This package will be used for generating the
SQL> ORA-0100: Maximum open cursors exceeded error **/
SQL> CREATE OR REPLACE PACKAGE test_open_cursor AS
2 cursor c01 is select * from dual;
3 cursor c02 is select * from dual;
4 cursor c03 is select * from dual;
5 cursor c04 is select * from dual;
6 cursor c05 is select * from dual;
7 cursor c06 is select * from dual;
8 cursor c07 is select * from dual;
9 cursor c08 is select * from dual;
10 cursor c09 is select * from dual;
11 cursor c10 is select * from dual;
12 cursor c11 is select * from dual;
13 cursor c12 is select * from dual;
14 cursor c13 is select * from dual;
15 cursor c14 is select * from dual;
16 cursor c15 is select * from dual;
17 cursor c16 is select * from dual;
18 cursor c17 is select * from dual;
19 cursor c18 is select * from dual;
20 cursor c19 is select * from dual;
21 cursor c20 is select * from dual;
22 cursor c21 is select * from dual;
23 cursor c22 is select * from dual;
24 cursor c23 is select * from dual;
25 cursor c24 is select * from dual;
26 cursor c25 is select * from dual;
27 cursor c26 is select * from dual;
28 cursor c27 is select * from dual;
29 cursor c28 is select * from dual;
30 cursor c29 is select * from dual;
31 cursor c30 is select * from dual;
32 cursor c31 is select * from dual;
33 cursor c32 is select * from dual;
34 cursor c33 is select * from dual;
35 cursor c34 is select * from dual;
36 cursor c35 is select * from dual;
37 cursor c36 is select * from dual;
38 cursor c37 is select * from dual;
39 cursor c38 is select * from dual;
40 cursor c39 is select * from dual;
41 cursor c40 is select * from dual;
42 END;
43 /
Package created.
SQL> /** This procedure will be called from the trigger
SQL> to send the mail. **/
SQL> CREATE OR REPLACE PROCEDURE send_cursor_mail AUTHID CURRENT_USER IS
2 /*** UTL_SMTP related varriable ***/
3 v_connection_handle UTL_SMTP.connection;
4 v_from_email_address VARCHAR2(30) := '[email protected]';
5 v_to_email_address VARCHAR2(30) := '[email protected]';
6 v_smtp_host VARCHAR2(30) := 'x.xxx.xxx.xxx'; --My mail server, replace it with yours
7 v_subject VARCHAR2(300) := 'ORA-0100: Maximum open cursors exceeded';
8 l_message VARCHAR2(32767) := 'ORA-0100: Maximum open cursors exceeded';
9 crlf CONSTANT VARCHAR2(2):=CHR(13) || CHR(10);
10 /* This send_header procedure is written in the documentation */
11 PROCEDURE send_header(pi_name IN VARCHAR2, pi_header IN VARCHAR2) AS
12 BEGIN
13 UTL_SMTP.WRITE_DATA(v_connection_handle,
14 pi_name || ': ' || pi_header || crlf);
15 END;
16 BEGIN
17 v_connection_handle := UTL_SMTP.open_connection(v_smtp_host);
18 UTL_SMTP.HELO(v_connection_handle, v_smtp_host);
19 UTL_SMTP.MAIL(v_connection_handle, v_from_email_address);
20 UTL_SMTP.RCPT(v_connection_handle, v_to_email_address);
21 UTL_SMTP.OPEN_DATA(v_connection_handle);
22
23 send_header('From', '"Sender" <' || v_from_email_address || '>');
24 send_header('To', '"Recipient" <' || v_to_email_address || '>');
25 send_header('Subject', v_subject);
26 UTL_SMTP.write_data(v_connection_handle, crlf || l_message);
27 UTL_SMTP.close_data(v_connection_handle);
28 UTL_SMTP.quit(v_connection_handle);
29 END;
30 /
Procedure created.
SQL> /** The trigger: This will capture the error and
SQL> send a mail **/
SQL> CREATE OR REPLACE TRIGGER open_cur_servererr
2 AFTER SERVERERROR ON schema
3 BEGIN
4 IF ora_is_servererror(1000) THEN
5 DBMS_OUTPUT.put_line('ORA-0100: Captured in trigger');
6 send_cursor_mail; --send the mail
7 DBMS_OUTPUT.put_line('Mail sent to Saubhik');
8 END IF;
9 END;
10 /
Trigger created.
SQL> SET SERVEROUT ON
SQL>
SQL> /** Generate the error */
SQL> BEGIN
2 FOR i in 1 .. 40 LOOP
3 execute immediate 'begin open test_open_cursor.c' || to_char(i, 'fm00') ||
4 '; end;';
5 END LOOP;
6 END;
7 /
**ORA-0100: Captured in trigger**
**Mail sent to Saubhik**
BEGIN
ERROR at line 1:
ORA-01000: maximum open cursors exceeded
ORA-06512: at "SCOTT.TEST_OPEN_CURSOR", line 30
ORA-06512: at line 1
ORA-06512: at line 3
SQL> Look at the lines ORA-0100: Captured in trigger, Mail sent to Saubhik
and I have received the mail in my mail address specified in the procedure.
Similar Messages
-
[SOLVED]How to send email to a local user?
I have installed Mutt, msmtp, procmail and I can send and receive emails to/from remote hosts and I'd like to send email locally also (to the recipients on the same machine as the sender).
When I try to send email to a local user from the root account -
echo "Test message" | mail -s "Test subject" localuser
then I get an error that connection to the port 25 is refused. Because the /etc/msmtprc file contains the 'localhost' as the default account's host, and on the local host I don't have a mail server listening on 25 port running.
When I try to send email from a non-root account which has in /$HOME/.msmtprc file a real email account on a remote server, then of course there is an error that the domain for the email address 'localuser' is not recognized.
How can sending email to local users be enabled?
Last edited by nbd (2014-09-30 22:33:37)If I understand correctly, postfix it's a constantly running daemon. Seems to be an overhead for delivering only from time to time sent messages.
ewaller wrote:
> Out of the box, sendmail should be safe, but I think you have to enable local mail.
Currently I have msmtp-mta installed, which is described as having sendmail functionality. If I install sendmail - will it be possible to send local email without running email daemons? -
How to send email notification in different languages in Workflow ?? Urgent Help Needed
Gurus,
How to send email notification in different languages in Workflow? Can anyone send me some useful guidelines or link where it is mentioned.There is no profile option available to specify whether send or not send email notification.
But after login, in preferences youcan set the notification preference value by which you can configure whether to send or not
to send email notifications.
If you select ''Do not send me mail' or 'Disabled' it will not send.
For other values it sends the notfication in different formats like text, html, attachments etc...
Edited by: sarojak on Jun 27, 2011 7:18 AM -
How to send emails from HANA SQL Console
Hi,
Please guide how to send mail from HANA Studio SQL Console.
Is there any standard procedure in Hana Studio to send Mail( e.g. in MS SQL "sp_send_dbmail" Procedure)Hi Preethi,
Please go through the attached link:
How to send emails from HANA
Regards,
Krishna -
How to send emails from of pdf's generated by oracle reports
I have several pdf documents , I want to email those pdf's . Please let me know how to send emails from oracle reports .
Thanks,
PrevinI have integrated Oracle Reports with Oracle Portal and used the scheduling feature via portlets. We have reports that run every monday morning for management. For more info go to:
http://otn.oracle.com/products/reports/htdocs/getstart/demonstrations/index.html
OR
I think if you set destype=mail, desformat=PDF, and desname=[email protected] that should also do the trick.
Just be sure that you have put your mail server's IP address in the rep_<machine_name>.conf file located in your <oracle_home>/reports/conf directory. If this is not set up, the mail feature won't work.
Martin -
How to send emails to spam folder?
I just got my Note4 and the phone's Help tells me that I need to select the email, then the bottom menu will populate with a little red circle with a + in it. I am to click that and the email address is sent to spam. But my bottom menu is NOT giving me that spam icon to click. How can I block emails? Or how can I get that little icon to show up?
Thanks!!Yes, I have unsubscribed to the emails that allowed me too. Now I would
like to block spefic addresses and/or domains.
My email addresses are @verizon.net, @gmail.com and a corporate one. I am
using Gmail for the Gmail accounts and using the default email service that
came on the phone. It's icon is an envelope with a red @
I know the gmail service allows me to easily click "report spam" but using
note 4 how can I block emails in my verizon.net account and corporate
account?
Thanks.
<https://community.verizonwireless.com>
A message from the Verizon Wireless Community
<https://community.verizonwireless.com>
<https://www.verizonwireless.com/wcms/consumer/explore.html>
<http://www.verizonwireless.com/wcms/consumer/shop.html> [image: MY
VERIZON] <http://www.verizonwireless.com/b2c/myverizonlp/>
<http://www.verizonwireless.com/support/>
how to send emails to spam folder? created by Verizon Wireless Customer
Support <https://community.verizonwireless.com/people/vzw_customer_support>
in Android - View the full discussion
<https://community.verizonwireless.com/message/1176922#1176922> -
How to sending email from Oracle Forms
How to sending email from Oracle 6i(Forms)
I need to send email to a distribution list(multiple email addresses).send email of multiple email address
[email protected],[email protected],[email protected]
create or replace function mailout
(sender in varchar2,
recipient in varchar2,
ccrecipient in varchar2,
subject in varchar2,
message in varchar2) return number
is
crlf varchar2(2) := chr(13)||chr(10);
connection utl_smtp.connection;
mailhost varchar2(50) := 'Add email server Ip Address here';
header varchar2(4000);
v_num number :=1;
str number:=0;
email varchar2(50);
begin
connection := utl_smtp.open_connection(mailhost,25);
header := 'Date: '||to_char(sysdate,'dd mon yy hh24:mi:ss')||crlf||
'From: '||sender||' '||crlf||
'Subject: '||subject||crlf||
'To: '||recipient||crlf||
'Cc: '||ccrecipient||crlf||message;
utl_smtp.helo(connection,mailhost);
utl_smtp.mail(connection,sender);
utl_smtp.rcpt(connection,recipient);
while (instr(ccrecipient,',',1,v_num)>0) loop
email:=substr(ccrecipient,str+1,instr(ccrecipient,',',1,v_num)-str-1);
dbms_output.put_line(email);
utl_smtp.rcpt(connection,email);
str:=instr(ccrecipient,',',1,v_num);
v_num:=v_num+1;
end loop;
utl_smtp.open_data(connection);
-- utl_smtp.write_data(connection,header);
utl_smtp.write_data(connection,'MIME-Version:1.0'||crlf||'Content-type:text/html'||crlf||header);
utl_smtp.close_data(connection);
utl_smtp.quit(connection);
return 0;
exception
when utl_smtp.invalid_operation then
dbms_output.put_line('Invalid Operation in SMTP transaction');
return 1;
when utl_smtp.transient_error then
dbms_output.put_line('Temporary problem with sending email ');
return 2;
when utl_smtp.permanent_error then
dbms_output.put_line('Permanent problem with sending email ');
return 3;
end; -
Hi Just wanted to find out how to send email? can receive just fine but cant send. Using hotmail at the moment.
Any help would be great
Thanksgo to your mail providers setup guide and compare every single setting to how your smtp setup in your settings are set
and if they are not the same change yours to match their page
and if they are the same contact your isp to inquire as to why they are blocking the ports your mail provider are using -
Hi All,
I am working with SharePoint 2013 designer workflow. we are using office 365.
Our requirement to send email to multiple users, get the user groups from lookup list people and groups column.
But SP designer sending emails to the first user alone.
Please guide me to proceed.
Advance Thanks.
Regards
Jenkins NS
Thanks and Regards Jenkinsfinally I got a solution
Identified a workaround to solve the issue using SharePoint designer.
Step 1
Create a lookup list Example department
Columns
Title (by default) – Single line of text
Users – Person or Group
Emails – Multiple lines of text
hidden the Emails column (go to content type and set the column as hidden)
Create a SharePoint designer Workflow
Start Workflow automatically when an item is created
Also Start Workflow automatically when an item is changed
Workflow Stage 1
Set Emails to current Item: Users
The workflow will get all users email ids and add in the Emails column delimiter as semicolon.
Step 2
Create a custom list to get the email ids and send email
Create a lookup column ex: analysis and refer department list, Allow multiple values
Then Create a SharePoint designer workflow
full details workflow steps please follow below
URL
http://jenkinsblogs.com/2015/04/30/how-to-send-emails-to-multiple-users-from-lookup-list-people-picker-field-using-sharepoint-designer-workflow/
Thanks and Regards Jenkins -
Since yesterday I'm unable to send emails on any of my Apple devices. The revert is that I have exceeded the maximum number of emails per day, but I had only sent out 24 with no bulk emailing - (much less than 1000 recipients as per the website) and I'm STILL not able to send emails. Any advice on how to solve this?
I have asked a moderator to provide assistance, they will post an invite on this thread.
Once you get a reply, if you click on their name, you will see a screen like this. Click on the link as shown below.
Please do not send them a personal message, as they may not be on duty for a long time, and your message will not be tracked properly.
There are some useful help pages here, for BT Broadband customers only, on my personal website.
BT Broadband customers - help with broadband, WiFi, networking, e-mail and phones. -
How to send Email with attachments
Hi im Trying to send a file as attachment using EMail Activity operator.
Can we do it using Email activity? If yes, then how can we do it? If no, then please tell me about any other method using which i can send a email with attachments.
Regards
VibhutiBetter late than never, a comprehensive demo on the topic:
REM
REM maildemo.sql - A PL/SQL package to demonstrate how to use the UTL_SMTP
REM package to send emails in ASCII and non-ASCII character sets, emails
REM with text or binary attachments.
REM
REM Note: this package relies on the UTL_ENCODE PL/SQL package in Oracle 9i.
CREATE OR REPLACE PACKAGE demo_mail IS
----------------------- Customizable Section -----------------------
-- Customize the SMTP host, port and your domain name below.
smtp_host VARCHAR2(256) := 'smtp-server.some-company.com';
smtp_port PLS_INTEGER := 25;
smtp_domain VARCHAR2(256) := 'some-company.com';
-- Customize the signature that will appear in the email's MIME header.
-- Useful for versioning.
MAILER_ID CONSTANT VARCHAR2(256) := 'Mailer by Oracle UTL_SMTP';
--------------------- End Customizable Section ---------------------
-- A unique string that demarcates boundaries of parts in a multi-part email
-- The string should not appear inside the body of any part of the email.
-- Customize this if needed or generate this randomly dynamically.
BOUNDARY CONSTANT VARCHAR2(256) := '-----7D81B75CCC90D2974F7A1CBD';
FIRST_BOUNDARY CONSTANT VARCHAR2(256) := '--' || BOUNDARY || utl_tcp.CRLF;
LAST_BOUNDARY CONSTANT VARCHAR2(256) := '--' || BOUNDARY || '--' ||
utl_tcp.CRLF;
-- A MIME type that denotes multi-part email (MIME) messages.
MULTIPART_MIME_TYPE CONSTANT VARCHAR2(256) := 'multipart/mixed; boundary="'||
BOUNDARY || '"';
MAX_BASE64_LINE_WIDTH CONSTANT PLS_INTEGER := 76 / 4 * 3;
-- A simple email API for sending email in plain text in a single call.
-- The format of an email address is one of these:
-- someone@some-domain
-- "Someone at some domain" <someone@some-domain>
-- Someone at some domain <someone@some-domain>
-- The recipients is a list of email addresses separated by
-- either a "," or a ";"
PROCEDURE mail(sender IN VARCHAR2,
recipients IN VARCHAR2,
subject IN VARCHAR2,
message IN VARCHAR2);
-- Extended email API to send email in HTML or plain text with no size limit.
-- First, begin the email by begin_mail(). Then, call write_text() repeatedly
-- to send email in ASCII piece-by-piece. Or, call write_mb_text() to send
-- email in non-ASCII or multi-byte character set. End the email with
-- end_mail().
FUNCTION begin_mail(sender IN VARCHAR2,
recipients IN VARCHAR2,
subject IN VARCHAR2,
mime_type IN VARCHAR2 DEFAULT 'text/plain',
priority IN PLS_INTEGER DEFAULT NULL)
RETURN utl_smtp.connection;
-- Write email body in ASCII
PROCEDURE write_text(conn IN OUT NOCOPY utl_smtp.connection,
message IN VARCHAR2);
-- Write email body in non-ASCII (including multi-byte). The email body
-- will be sent in the database character set.
PROCEDURE write_mb_text(conn IN OUT NOCOPY utl_smtp.connection,
message IN VARCHAR2);
-- Write email body in binary
PROCEDURE write_raw(conn IN OUT NOCOPY utl_smtp.connection,
message IN RAW);
-- APIs to send email with attachments. Attachments are sent by sending
-- emails in "multipart/mixed" MIME format. Specify that MIME format when
-- beginning an email with begin_mail().
-- Send a single text attachment.
PROCEDURE attach_text(conn IN OUT NOCOPY utl_smtp.connection,
data IN VARCHAR2,
mime_type IN VARCHAR2 DEFAULT 'text/plain',
inline IN BOOLEAN DEFAULT TRUE,
filename IN VARCHAR2 DEFAULT NULL,
last IN BOOLEAN DEFAULT FALSE);
-- Send a binary attachment. The attachment will be encoded in Base-64
-- encoding format.
PROCEDURE attach_base64(conn IN OUT NOCOPY utl_smtp.connection,
data IN RAW,
mime_type IN VARCHAR2 DEFAULT 'application/octet',
inline IN BOOLEAN DEFAULT TRUE,
filename IN VARCHAR2 DEFAULT NULL,
last IN BOOLEAN DEFAULT FALSE);
-- Send an attachment with no size limit. First, begin the attachment
-- with begin_attachment(). Then, call write_text repeatedly to send
-- the attachment piece-by-piece. If the attachment is text-based but
-- in non-ASCII or multi-byte character set, use write_mb_text() instead.
-- To send binary attachment, the binary content should first be
-- encoded in Base-64 encoding format using the demo package for 8i,
-- or the native one in 9i. End the attachment with end_attachment.
PROCEDURE begin_attachment(conn IN OUT NOCOPY utl_smtp.connection,
mime_type IN VARCHAR2 DEFAULT 'text/plain',
inline IN BOOLEAN DEFAULT TRUE,
filename IN VARCHAR2 DEFAULT NULL,
transfer_enc IN VARCHAR2 DEFAULT NULL);
-- End the attachment.
PROCEDURE end_attachment(conn IN OUT NOCOPY utl_smtp.connection,
last IN BOOLEAN DEFAULT FALSE);
-- End the email.
PROCEDURE end_mail(conn IN OUT NOCOPY utl_smtp.connection);
-- Extended email API to send multiple emails in a session for better
-- performance. First, begin an email session with begin_session.
-- Then, begin each email with a session by calling begin_mail_in_session
-- instead of begin_mail. End the email with end_mail_in_session instead
-- of end_mail. End the email session by end_session.
FUNCTION begin_session RETURN utl_smtp.connection;
-- Begin an email in a session.
PROCEDURE begin_mail_in_session(conn IN OUT NOCOPY utl_smtp.connection,
sender IN VARCHAR2,
recipients IN VARCHAR2,
subject IN VARCHAR2,
mime_type IN VARCHAR2 DEFAULT 'text/plain',
priority IN PLS_INTEGER DEFAULT NULL);
-- End an email in a session.
PROCEDURE end_mail_in_session(conn IN OUT NOCOPY utl_smtp.connection);
-- End an email session.
PROCEDURE end_session(conn IN OUT NOCOPY utl_smtp.connection);
END;
CREATE OR REPLACE PACKAGE BODY demo_mail IS
-- Return the next email address in the list of email addresses, separated
-- by either a "," or a ";". The format of mailbox may be in one of these:
-- someone@some-domain
-- "Someone at some domain" <someone@some-domain>
-- Someone at some domain <someone@some-domain>
FUNCTION get_address(addr_list IN OUT VARCHAR2) RETURN VARCHAR2 IS
addr VARCHAR2(256);
i pls_integer;
FUNCTION lookup_unquoted_char(str IN VARCHAR2,
chrs IN VARCHAR2) RETURN pls_integer AS
c VARCHAR2(5);
i pls_integer;
len pls_integer;
inside_quote BOOLEAN;
BEGIN
inside_quote := false;
i := 1;
len := length(str);
WHILE (i <= len) LOOP
c := substr(str, i, 1);
IF (inside_quote) THEN
IF (c = '"') THEN
inside_quote := false;
ELSIF (c = '\') THEN
i := i + 1; -- Skip the quote character
END IF;
GOTO next_char;
END IF;
IF (c = '"') THEN
inside_quote := true;
GOTO next_char;
END IF;
IF (instr(chrs, c) >= 1) THEN
RETURN i;
END IF;
<<next_char>>
i := i + 1;
END LOOP;
RETURN 0;
END;
BEGIN
addr_list := ltrim(addr_list);
i := lookup_unquoted_char(addr_list, ',;');
IF (i >= 1) THEN
addr := substr(addr_list, 1, i - 1);
addr_list := substr(addr_list, i + 1);
ELSE
addr := addr_list;
addr_list := '';
END IF;
i := lookup_unquoted_char(addr, '<');
IF (i >= 1) THEN
addr := substr(addr, i + 1);
i := instr(addr, '>');
IF (i >= 1) THEN
addr := substr(addr, 1, i - 1);
END IF;
END IF;
RETURN addr;
END;
-- Write a MIME header
PROCEDURE write_mime_header(conn IN OUT NOCOPY utl_smtp.connection,
name IN VARCHAR2,
value IN VARCHAR2) IS
BEGIN
utl_smtp.write_data(conn, name || ': ' || value || utl_tcp.CRLF);
END;
-- Mark a message-part boundary. Set <last> to TRUE for the last boundary.
PROCEDURE write_boundary(conn IN OUT NOCOPY utl_smtp.connection,
last IN BOOLEAN DEFAULT FALSE) AS
BEGIN
IF (last) THEN
utl_smtp.write_data(conn, LAST_BOUNDARY);
ELSE
utl_smtp.write_data(conn, FIRST_BOUNDARY);
END IF;
END;
PROCEDURE mail(sender IN VARCHAR2,
recipients IN VARCHAR2,
subject IN VARCHAR2,
message IN VARCHAR2) IS
conn utl_smtp.connection;
BEGIN
conn := begin_mail(sender, recipients, subject);
write_text(conn, message);
end_mail(conn);
END;
FUNCTION begin_mail(sender IN VARCHAR2,
recipients IN VARCHAR2,
subject IN VARCHAR2,
mime_type IN VARCHAR2 DEFAULT 'text/plain',
priority IN PLS_INTEGER DEFAULT NULL)
RETURN utl_smtp.connection IS
conn utl_smtp.connection;
BEGIN
conn := begin_session;
begin_mail_in_session(conn, sender, recipients, subject, mime_type,
priority);
RETURN conn;
END;
PROCEDURE write_text(conn IN OUT NOCOPY utl_smtp.connection,
message IN VARCHAR2) IS
BEGIN
utl_smtp.write_data(conn, message);
END;
PROCEDURE write_mb_text(conn IN OUT NOCOPY utl_smtp.connection,
message IN VARCHAR2) IS
BEGIN
utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw(message));
END;
PROCEDURE write_raw(conn IN OUT NOCOPY utl_smtp.connection,
message IN RAW) IS
BEGIN
utl_smtp.write_raw_data(conn, message);
END;
PROCEDURE attach_text(conn IN OUT NOCOPY utl_smtp.connection,
data IN VARCHAR2,
mime_type IN VARCHAR2 DEFAULT 'text/plain',
inline IN BOOLEAN DEFAULT TRUE,
filename IN VARCHAR2 DEFAULT NULL,
last IN BOOLEAN DEFAULT FALSE) IS
BEGIN
begin_attachment(conn, mime_type, inline, filename);
write_text(conn, data);
end_attachment(conn, last);
END;
PROCEDURE attach_base64(conn IN OUT NOCOPY utl_smtp.connection,
data IN RAW,
mime_type IN VARCHAR2 DEFAULT 'application/octet',
inline IN BOOLEAN DEFAULT TRUE,
filename IN VARCHAR2 DEFAULT NULL,
last IN BOOLEAN DEFAULT FALSE) IS
i PLS_INTEGER;
len PLS_INTEGER;
BEGIN
begin_attachment(conn, mime_type, inline, filename, 'base64');
-- Split the Base64-encoded attachment into multiple lines
i := 1;
len := utl_raw.length(data);
WHILE (i < len) LOOP
IF (i + MAX_BASE64_LINE_WIDTH < len) THEN
utl_smtp.write_raw_data(conn,
utl_encode.base64_encode(utl_raw.substr(data, i,
MAX_BASE64_LINE_WIDTH)));
ELSE
utl_smtp.write_raw_data(conn,
utl_encode.base64_encode(utl_raw.substr(data, i)));
END IF;
utl_smtp.write_data(conn, utl_tcp.CRLF);
i := i + MAX_BASE64_LINE_WIDTH;
END LOOP;
end_attachment(conn, last);
END;
PROCEDURE begin_attachment(conn IN OUT NOCOPY utl_smtp.connection,
mime_type IN VARCHAR2 DEFAULT 'text/plain',
inline IN BOOLEAN DEFAULT TRUE,
filename IN VARCHAR2 DEFAULT NULL,
transfer_enc IN VARCHAR2 DEFAULT NULL) IS
BEGIN
write_boundary(conn);
write_mime_header(conn, 'Content-Type', mime_type);
IF (filename IS NOT NULL) THEN
IF (inline) THEN
write_mime_header(conn, 'Content-Disposition',
'inline; filename="'||filename||'"');
ELSE
write_mime_header(conn, 'Content-Disposition',
'attachment; filename="'||filename||'"');
END IF;
END IF;
IF (transfer_enc IS NOT NULL) THEN
write_mime_header(conn, 'Content-Transfer-Encoding', transfer_enc);
END IF;
utl_smtp.write_data(conn, utl_tcp.CRLF);
END;
PROCEDURE end_attachment(conn IN OUT NOCOPY utl_smtp.connection,
last IN BOOLEAN DEFAULT FALSE) IS
BEGIN
utl_smtp.write_data(conn, utl_tcp.CRLF);
IF (last) THEN
write_boundary(conn, last);
END IF;
END;
PROCEDURE end_mail(conn IN OUT NOCOPY utl_smtp.connection) IS
BEGIN
end_mail_in_session(conn);
end_session(conn);
END;
FUNCTION begin_session RETURN utl_smtp.connection IS
conn utl_smtp.connection;
BEGIN
-- open SMTP connection
conn := utl_smtp.open_connection(smtp_host, smtp_port);
utl_smtp.helo(conn, smtp_domain);
RETURN conn;
END;
PROCEDURE begin_mail_in_session(conn IN OUT NOCOPY utl_smtp.connection,
sender IN VARCHAR2,
recipients IN VARCHAR2,
subject IN VARCHAR2,
mime_type IN VARCHAR2 DEFAULT 'text/plain',
priority IN PLS_INTEGER DEFAULT NULL) IS
my_recipients VARCHAR2(32767) := recipients;
my_sender VARCHAR2(32767) := sender;
BEGIN
-- Specify sender's address (our server allows bogus address
-- as long as it is a full email address ([email protected]).
utl_smtp.mail(conn, get_address(my_sender));
-- Specify recipient(s) of the email.
WHILE (my_recipients IS NOT NULL) LOOP
utl_smtp.rcpt(conn, get_address(my_recipients));
END LOOP;
-- Start body of email
utl_smtp.open_data(conn);
-- Set "From" MIME header
write_mime_header(conn, 'From', sender);
-- Set "To" MIME header
write_mime_header(conn, 'To', recipients);
-- Set "Subject" MIME header
write_mime_header(conn, 'Subject', subject);
-- Set "Content-Type" MIME header
write_mime_header(conn, 'Content-Type', mime_type);
-- Set "X-Mailer" MIME header
write_mime_header(conn, 'X-Mailer', MAILER_ID);
-- Set priority:
-- High Normal Low
-- 1 2 3 4 5
IF (priority IS NOT NULL) THEN
write_mime_header(conn, 'X-Priority', priority);
END IF;
-- Send an empty line to denotes end of MIME headers and
-- beginning of message body.
utl_smtp.write_data(conn, utl_tcp.CRLF);
IF (mime_type LIKE 'multipart/mixed%') THEN
write_text(conn, 'This is a multi-part message in MIME format.' ||
utl_tcp.crlf);
END IF;
END;
PROCEDURE end_mail_in_session(conn IN OUT NOCOPY utl_smtp.connection) IS
BEGIN
utl_smtp.close_data(conn);
END;
PROCEDURE end_session(conn IN OUT NOCOPY utl_smtp.connection) IS
BEGIN
utl_smtp.quit(conn);
END;
END;
/ -
How to send email but not receive it
Hi,
I have 2 email addresses, one for work, and one for other. I like my work email to be forwarded to my Gmail because it archives all of my messages. But in Mac Mail I want to send email from both accounts and only receive from my gmail. Currently I receive duplicate messages on every message because it gets mail from both places and if its a message to my work email, since its forwarded I get it twice.
I already checked, do not check this mailbox when automatically checking for updates, and that works some of the time, but if I need to hit the Get Mail button, it gets mail from that, and I go from 7 messages to 850.
So is there way to be able to have an email address just to send from and not get mail from?what you describe is strange. how exactly do you forward messages from the work account to gmail? if you do it on the server then there should be no duplicates and your work mailbox on the server should be simply empty.
to send from two accounts yopu can try the following. delete the work account in Mail (that will delete all maiboxes associated with it). then add your work email address separated by command to your gmail address in mail preferences->accounts. also add the smtp server for that address to the list of smtp servers. you'll have to manually choose the "from' address and the smtp server when you send mail but it might work if your work smtp server doesn't complain (it might). -
Apex 4: How to send email when form is submitted?
Hi,
Using Apex 4.0.2 on DB 11g, I've a form with around 80 fields and 4 check boxes.
When the user clicks on submit button, besides saving the values in the database I also have to send emails. Selection of the 4 check boxes decides whom the email has to go to, i.e if 2 check boxes are checked, send 2 emails.
In the emails, some contents will be based on the data the user has filled and some from the database; also data in different emails will be different.
From what I've read, to send email I've to use APEX_MAIL API and make a conditional process depending on the check boxes selected. Also that I have configure mail server in database and that mail sever has to accept autonomous user (i.e. sending email without password)
Is this the right approach?
How can I do this?
Is there any example/tutorial that will guide me in doing this?
Thank you for your time.The Apex email package is very simple.
v_id := apex_mail.send(
p_to => v_to,
p_from => v_from,
p_subj => v_subject,
p_body => v_body,
p_body_html => v_html);It's up to you how you get the values of the variables.
Also that I have configure mail server in database and that mail sever has to accept autonomous userThe mail server is not in the database, but you do have to inform Apex which server to use (smtp.yourcompany.com).
Most smtp servers require user and password. In that case you have to write your own procedure. Search the pl/sql forum for email authentication and you will find many examples.
It is probably also possible to configure the smtp server in such a way that requests coming from the database do not need authentication. That is how we have it configured (but I don't know how the administrator did it, though). -
OBIEE 11g: How to send email from Analysis (via Action Framework)
Hi,
I have installed OBIEE 11g SampleAppLite in my POC box.
One of the features I want to have is to allow users to send their feedback (email) about a report to the report owner. Can this be done without launching Outlook? I tried to Invoke a Browser Script and found that I can display a form showing Recipient, Subject and Message text fields, but I do not know how to send the email.
Thanks!Hi Devarasu,
Thanks for your reply. The link you gave is for sending iBots. But if I do this, users will not be able to send their feedback / comment. -
How to send email if job fails?
I'm wondering how to send an email if a data load fails. Or, do the same, if a Select > Into or Insert > Select . . . or whatever . . . fails. Last week I set up a process to send an email using SQL Server express.
http://www.sqlservercentral.com/blogs/querying-microsoft-sql-server/2013/09/02/sending-mail-using-sql-server-express-edition/
I can easily include a simple script at the end of a SQL statement:
exec
msdb.dbo.sp_send_dbmail
So, if I run a Select, or whatever, I can run the exec and send an email. Now, I'm trying to think about how to send an email if a process fails. I don't think you can do it with a simple Select.
Any ideas, anyone?
Thanks.
Knowledge is the only thing that I can give you, and still retain, and we are both better off for it.This is a good read to understand on error handling in SQL
http://www.sommarskog.se/error_handling_2005.html
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My Wiki User Page
My MSDN Page
My Personal Blog
My Facebook Page
Maybe you are looking for
-
I cannot believe that apple is refusing to help a customer who bought and paid for iWork software just because I bought it from the retail store the App Store says they cannot allow me to upgrade. I have never heard of such. It should to matter whe
-
How to watch SXI_CACHE and SXMB_MONI
Hi all, I am a newbie to BPM... I have got a problem in my BPM, now I want to watch SXI_CACHE and SXMB_MONI. I dont know where they are located and how to see.... I tried to see in RWB but i cant locate them. Help needed..... Thanks in advance, subho
-
Problem downloading Itunes 10.5.2 :
I'm not sure if this has happened to anyone else, but I'm having trouble downloading Itunes 10.5.2. I get the message that an update is available, but when I click on "download now", nothing happens. I am running windows 7 home premium - 64 bit opera
-
Java2 Platform - What does the number "2" mean ?
Hi all, it is likely stupic. I have used java for nearly 2 years but until now, I don't know what does the number 2 accompanied with java mean ? It is a kind of naming, versioning or what ?? We have java2 including j2ee, j2se,j2me. The number 2 appea
-
Ipad not backup message has frozen the screen
ipad not backed up message has frozen the screen