Send an E-mail with an attachment procedure Oracle
JinI have the procedure to send e-mail with excel attachment
The data in the Excel file are built by using the query in my procedure. Send mail with attachment, it works well.
Now the situation is if there is no data in the Excel worksheet that is built dynamically, we limit the sending of email
is that possible, please let me know,
Am using the utl_tcp method to build the excel file
Thank you
Vel
Something like that? But I have not tested. Please test carefully.
PROCEDURE GCN_ORDER(errbuf OUT VARCHAR2, retcode OUT VARCHAR2) IS
rc integer;
crlf VARCHAR2(2) := CHR(13) || CHR(10);
mesg VARCHAR2(1000);
c utl_tcp.connection;
L_FROM_DATE DATE;
L_TO_DATE DATE;
msg_from VARCHAR2(100) := '[email protected]';
to_addresses VARCHAR2(1000);
cc_addresses VARCHAR2(1000);
email_addresses VARCHAR2(2000);
msg_subject VARCHAR2(200) := 'E-mail Alert: ';
msg_text1 VARCHAR2(15) := 'Dear Sir,';
msg_text2 VARCHAR2(500) := 'Please find the attached file,';
msg_text3 VARCHAR2(25) := 'Division';
msg_text4 VARCHAR2(25) := 'For the period : ';
v_mail_to VARCHAR2(1000);
lv_gcn varchar2(1000);
next_column number;
recipient_email_length number;
single_recipient_addr varchar2(100);
v_is_there_any_attachment CHAR(1):='N'; --New var.
cursor cur_select(L_FROM_DATE DATE, L_TO_DATE DATE) is
SELECT (substr(wdd.source_header_type_name, 5) || ',' ||
oha.order_number || ',' || wdd.attribute1 || ',' ||
TO_DATE(wdd.attribute2, 'dd/mm/rrrr') || ',' ||
TO_DATE(oha.creation_date, 'dd/mm/rrrr') || ',' ||
TO_DATE(ola.creation_date, 'dd/mm/rrrr') || ',' ||
ola.ordered_item) gcn
FROM apps.oe_order_headers_all oha,
apps.oe_order_lines_all ola,
apps.wsh_delivery_details wdd
WHERE oha.org_id = 92
AND oha.org_id = ola.org_id
AND oha.header_id = ola.header_id
AND wdd.inventory_item_id = ola.inventory_item_id
AND wdd.source_header_number = oha.order_number
AND wdd.source_line_id = ola.line_id
AND wdd.org_id = oha.org_id
AND wdd.attribute_category = '92Freight'
AND TO_DATE(wdd.attribute2, 'dd/mm/rrrr') <
TO_DATE(ola.creation_date, 'dd/mm/rrrr')
AND TO_DATE(wdd.attribute2, 'dd/mm/rrrr') BETWEEN L_FROM_DATE AND
L_TO_DATE
AND oha.flow_status_code NOT IN ('BOOKED', 'ENTERED');
cursor cur_to_email is
SELECT email_address
FROM alert_users_ID
WHERE org_id IN (1, 92)
AND status_flag = 'Y'
AND report_id = 3
AND MAIL_TYPE = 'To'
AND (module = 'AR' OR module IS NULL);
cursor cur_cc_email is
SELECT email_address
FROM alert_users_ID
WHERE org_id IN (1, 92)
AND status_flag = 'Y'
AND report_id = 3
AND MAIL_TYPE = 'Cc'
AND (module = 'AR' OR module IS NULL);
BEGIN
--FROM AND TO DATE LOGIC
select MIN(START_DATE), MAX(END_DATE)
INTO L_FROM_DATE, L_TO_DATE
from apps.gl_period_statuses
where closing_status = 'O'
AND APPLICATION_ID = 101
AND SET_OF_BOOKS_ID = 2;
for c_to in cur_to_email loop
to_addresses := to_addresses || ',' || c_to.email_address;
end loop;
to_addresses := ltrim(to_addresses, ',');
for c_cc in cur_cc_email loop
cc_addresses := cc_addresses || ',' || c_cc.email_address;
end loop;
cc_addresses := ltrim(cc_addresses, ',');
email_addresses := to_addresses || ',' || cc_addresses;
recipient_email_length := length(email_addresses);
email_addresses := email_addresses || ','; -- Add comma for the last asddress
next_column := 1;
if instr(email_addresses, ',') = 0 then
-- Single E-mail address
single_recipient_addr := email_addresses;
recipient_email_length := 1;
end if;
c := utl_tcp.open_connection(remote_host => '127.0.0.1',
remote_port => 25,
tx_timeout => null);
rc := utl_tcp.write_line(c, 'HELO 127.0.0.1');
rc := utl_tcp.write_line(c, 'EHLO 127.0.0.1');
rc := utl_tcp.write_line(c, 'MAIL FROM: ' || msg_from);
while next_column <= recipient_email_length loop
-- Process Multiple E-mail addresses in the loop OR single E-mail address once.
single_recipient_addr := substr(email_addresses,
next_column,
instr(email_addresses, ',', next_column) -
next_column);
next_column := instr(email_addresses, ',', next_column) + 1;
--rc := utl_tcp.write_line(c, 'MAIL FROM: '||msg_from);
rc := utl_tcp.write_line(c, 'RCPT TO: ' || single_recipient_addr);
end loop;
rc := utl_tcp.write_line(c, 'DATA');
rc := utl_tcp.write_line(c,
'Date: ' ||
TO_CHAR(SYSDATE, 'dd Mon yy hh24:mi:ss'));
rc := utl_tcp.write_line(c,
'From: ' || msg_from || ' <' || msg_from || '>');
rc := utl_tcp.write_line(c, 'MIME-Version: 1.0');
rc := utl_tcp.write_line(c, 'To: ' || to_addresses);
rc := utl_tcp.write_line(c, 'Cc: ' || cc_addresses);
rc := utl_tcp.write_line(c, 'Subject: ' || msg_subject);
rc := utl_tcp.write_line(c, 'Content-Type: multipart/mixed;');
rc := utl_tcp.write_line(c, ' boundary="-----SECBOUND"');
rc := utl_tcp.write_line(c, '');
rc := utl_tcp.write_line(c, '-------SECBOUND');
rc := utl_tcp.write_line(c, 'Content-Type: text/plain');
rc := utl_tcp.write_line(c, 'Content-Transfer-Encoding: 7bit');
rc := utl_tcp.write_line(c, '');
rc := utl_tcp.write_line(c, msg_text1);
rc := utl_tcp.write_line(c, ' ');
rc := utl_tcp.write_line(c, msg_text2);
rc := utl_tcp.write_line(c, ' ');
rc := utl_tcp.write_line(c, msg_text3);
rc := utl_tcp.write_line(c,
msg_text4 || to_char(l_from_date, 'MON-YY') ||
' to ' || to_char(l_to_date, 'MON-YY'));
rc := utl_tcp.write_line(c, '');
rc := utl_tcp.write_line(c, '-------SECBOUND');
rc := utl_tcp.write_line(c, 'Content-Type: text/plain;');
rc := utl_tcp.write_line(c, ' name="GCN_Details.csv"');
rc := utl_tcp.write_line(c, 'Content-Transfer_Encoding: 8bit');
rc := utl_tcp.write_line(c, 'Content-Disposition: attachment;'); --Indicates that this is an attachment.
rc := utl_tcp.write_line(c, ' filename="GCN_Details.csv"');
rc := utl_tcp.write_line(c, '-------SECBOUND');
rc := utl_tcp.write_line(c, '');
begin
-- WRITE COLUMN HEADERS
rc := utl_tcp.write_text(c, 'BRANCH' || ',' || 'ORDER NUMBER');
rc := utl_tcp.write_line(c, ' ');
for c1 in cur_select(L_FROM_DATE, L_TO_DATE) loop --You are starting to write the data
lv_gcn := c1.gcn;
rc := utl_tcp.write_text(c, lv_gcn);
rc := utl_tcp.write_line(c, ' ');
v_is_there_any_attachment:='Y';--Is there any data ?
end loop;
exception
when others then
dbms_output.put_line('error : ' || sqlerrm);
rc := utl_tcp.write_text(c, 'Data Error');
end;
If v_is_there_any_attachment ='Y' THEN
rc := utl_tcp.write_line(c, '');
rc := utl_tcp.write_line(c, '.');
rc := utl_tcp.write_line(c, '-------SECBOUND');
--end loop;
END If;
rc := utl_tcp.write_line(c, 'QUIT');
dbms_output.put_line(utl_tcp.get_line(c, TRUE));
utl_tcp.close_connection(c);
EXCEPTION
when others then
utl_tcp.close_connection(c);
raise_application_error(-20000, SQLERRM);
END GCN_ORDER;
Tags: Database
Similar Questions
-
delete file after sending an e-mail with an attachment
Hello
I looked in the forums and have not found any reference to it.
I need to send an email with an attachment that is source via a form.
The problem I'm having is that when I include the code to remove the file from the directory, the intrusion via cfmail is unable to run. When I do not include the code to delete the file, it works fine.
Any ideas?
I tried with paths, physical and virtual.You need give time for email to send.
Figure 60 seconds or 60 seconds more your spool interval (if the coil is on (on))-whichever is greater.
It would be preferable not to delete the file here.
Set up a scheduled task that deletes files in the target directory that are, say, older than 24 hours.
-
The sender has not knowingly set any security or passwords.
Require that all attachments sender recipient username and password.
Using XP with Outlook Web Access, Internet Explorer 7.Hi Swhiteside11,
Thanks for visiting the site of the community of Microsoft Windows XP. The question you have posted is related to Exchange and would be better suited to the Technet community. Please visit the link below to find a community that will provide the support you want.
http://social.technet.Microsoft.com/forums/en-us/categories/
Shawn - Support Engineer - MCP, MCDST
Microsoft Answers Support Engineer
Visit our Microsoft answers feedback Forum and let us know what you think -
Sending E-Mail with an attachment using PL/SQL
Hello
I am trying to send an E-Mail with an attachment using pl/sql on Oracle 9i.
I found the code from the link below.
but the attachment it sends is defined in the pl/sql block.http://www.orafaq.com/wiki/Send_mail_from_PL/SQL
I want to attach a file in a different location. How can I do this?
Thanks in advanceIf the attachment is also on the server (it must be on the server), you can load into a BLOB and which attach to your e-mail (you will need to create an Oracle Directory that points to the file to be attached).
http://asktom.Oracle.com/pls/asktom/f?p=100:11:0:P11_QUESTION_ID:255615160805 #68529763836665
This thread is big enough, a ctrl + f there might give you some clues.Currently I do not have the mail api available on here, but I still have it on a "test/playground DB", so I'll take a look later, when I have time and place.
-
redirect e-mail with photos attached
When you try to send an e-mail with an attached picture in live mail, I get a notice on the screen that live mail cannot
find photos in the e-mail message. Transmitted without, he is received with an empty box with an x in the top left corner, but
No picture. This is not consistent with each email, which cannot live mail search image when it appears on my
perfectally screen?
Submit all Live and Hotmail queries on the forum right here:
Windows Live Solution Center
http://windowslivehelp.com/ -
Sending mail with an attachment using UTL_SMTP
Hi all
I'm working on a PL/SQL code, where do I send a mail with an attachment using UTL_SMTP. I use the following code, I changed the value of p_to and p_from
DECLARE
l_mail_conn UTL_SMTP.connection;
l_boundary VARCHAR2 (50): = '-= * #abc1234321cba #* =';
l_step PLS_INTEGER: = 12000; -Make sure you define a multiple of 3 would not exceed the 24573
p_to VARCHAR2 (100): = ' [email protected] ';
p_from VARCHAR2 (100): = ' [email protected] ';
p_subject VARCHAR2 (100): = "UPLOAD of FILE MAIL."
p_text_msg VARCHAR2 (100): = 'it is a system generated email';
p_attach_name VARCHAR2 (100);
p_attach_mime VARCHAR2 (100);
p_attach_blob BLOB;
p_smtp_host VARCHAR2 (100): = 'localhost ';
p_smtp_port NUMBER: = 25;
BEGIN
l_mail_conn: = UTL_SMTP.open_connection (p_smtp_host, p_smtp_port);
UTL_SMTP. HELO (l_mail_conn, p_smtp_host);
UTL_SMTP.mail (l_mail_conn, p_from);
UTL_SMTP. RCPT (l_mail_conn, p_to);
UTL_SMTP.open_data (l_mail_conn);
UTL_SMTP.write_data (l_mail_conn, ' Date: ' |) TO_CHAR (SYSDATE, ' ' DD-MON-YYYY HH24:MI:SS) | UTL_TCP. CRLF);
UTL_SMTP.write_data (l_mail_conn, ' from: ' | p_to |) UTL_TCP. CRLF);
UTL_SMTP.write_data (l_mail_conn, ' from: ' | p_from |) UTL_TCP. CRLF);
UTL_SMTP.write_data (l_mail_conn, ' subject: ' | p_subject |) UTL_TCP. CRLF);
UTL_SMTP.write_data (l_mail_conn, ' Reply-To: ' | p_from |) UTL_TCP. CRLF);
UTL_SMTP.write_data (l_mail_conn, "MIME-Version: 1.0 ' |") UTL_TCP. CRLF);
UTL_SMTP.write_data (l_mail_conn, ' Content-Type: multipart/mixed; limit = "" | ") l_boundary | '"' || UTL_TCP. CRLF. UTL_TCP. CRLF);
IF p_text_msg IS NOT NULL THEN
UTL_SMTP.write_data (l_mail_conn, '-' | l_boundary |) UTL_TCP. CRLF);
UTL_SMTP.write_data (l_mail_conn, ' Content-Type: text/plain; charset = "iso-8859-1" ' |) UTL_TCP. CRLF. UTL_TCP. CRLF);
UTL_SMTP.write_data (l_mail_conn, p_text_msg);
UTL_SMTP.write_data (l_mail_conn, UTL_TCP.crlf |) UTL_TCP. CRLF);
END IF;
IF p_attach_name IS NOT NULL THEN
FOR I IN (SELECT *)
OF xx_mail_test_table
WHERE ROWNUM = 1
ORDER BY last_update_date DESC) LOOP
UTL_SMTP.write_data (l_mail_conn, '-' | l_boundary |) UTL_TCP. CRLF);
UTL_SMTP.write_data (l_mail_conn, ' Content-Type: ' | p_attach_mime |) '; name =' ' | I.FILE_NAME | '"' || UTL_TCP. CRLF);
UTL_SMTP.write_data (l_mail_conn, "Content-Transfer-Encoding: base64' |") UTL_TCP. CRLF);
UTL_SMTP.write_data (l_mail_conn, ' Content-Disposition: attachment; filename = "" | ") I.FILE_NAME | '"' || UTL_TCP. CRLF. UTL_TCP. CRLF);
FOR J FROM 0... TRUNC ((DBMS_LOB. GetLength (I.file_name) - 1) / l_step) LOOP
UTL_SMTP.write_data (l_mail_conn, UTL_RAW.cast_to_varchar2 (UTL_ENCODE.base64_encode (DBMS_LOB.substr (I.FILE_NAME, l_step, J * l_step + 1)));)
END LOOP;
UTL_SMTP.write_data (l_mail_conn, UTL_TCP.crlf |) UTL_TCP. CRLF);
END LOOP;
END IF;
UTL_SMTP.write_data (l_mail_conn, '-' | l_boundary |) '--' || UTL_TCP. CRLF);
UTL_SMTP.close_data (l_mail_conn);
UTL_SMTP. Quit (l_mail_conn);
EXCEPTION
WHEN utl_smtp.transient_error OR utl_smtp.permanent_error THEN
UTL_SMTP. Quit (l_mail_conn);
lift;
WHILE OTHERS THEN
dbms_output.put_line (SQLERRM);
END;
This is when I execute the block that I get 2 mails to the same but there are some attachments, I checked the table and he gave.
Could someone help me as to where I'm wrong?
Create the raw DATA for the SMTP protocol can be tricky.
I cheat and use a package that has been designed to do easily.
MK
-
When I try to send an e-mail with pictures, a pop-up window appears when I hit SEND and says that the photos will not appear in the e-mail message. How can I fix it?
original title: e-mail problems.Hello
I suggest that ask you your question on the following link.
-
/ * moved from answers Feedback * /.
I have a question regarding windows mail. I was send and receive mail with no problems until last Thursday. I can still receive mail, but I can not send. My email is with bellsouth.net and comes in my computer through windows Messaging. I spent an hour and a half on the phone with bellsouth, and they say that the problem is with my windows mail. I tried to use a restore date, and that did not help either. I will post a copy of this message, as I keep getting. Your server suddenly put an end to the connection. The possible causes for this include server problems, network problems, or a long period of inactivity. Object 't', counts: 'mail.bellsouth.net', server: 'mail.bellsouth.net', Protocol: SMTP, Port: 25, secure (SSL): no, error number: 0x800CCC0F thanks for any help.Sometimes, WinMail settings get screwed up and you must remove the account and then add it back back. Make sure first that the antivirus software not interfere (see www.oehelp.com/OETips.aspx#3). Delete your account completely, then close WinMail. Then compact and repair the database of WinMail (see www.oehelp.com/WMUtil/). Add your account to mail back once again, and then make sure you have the correct settings under Tools | Accounts | Mail | Properties | Servers and | Advanced to what AT & T Specifies to WinMail (or OE). Then see if it works.
Steve
-
Sending mail with an attachment of the IOM
Hi Experts,
We have an obligation to send an email with an attachment of the IOM. Unable to find any relevant document how this goal using the model Notification and NotificationService.
Any help would be appreciated.
Thanks in advance.
This feature is not supported by the product. check the Doc ID 1444359.1
You can trigger an SR to know about this.
-
Trouble by sending an e-mail with a video or images
He is a recent problem with my Outlook Express. When I get an email with a video or photos attached, when I send this e-mail to others, they email saying that the video or photos are not there.
He is a recent problem with my Outlook Express. When I get an email with a video or photos attached, when I send this e-mail to others, they email saying that the video or photos are not there.
============================================
Just a thought...If you open Outlook Express and go to... Tools / Options /.
Send tab / section sending Mail Format / HTML parameters
button... Make sure that the box "send pictures with Messages.
is checked. Then... OK / apply / OK...Also, you can copy attachments in a folder on your
Hard drive and to compose a new e-mail message and to set
the files. -
Analyzes E-mails with no attachment - HP Envy 120
After you have scanned a document and sent to my e-mail address, what happens with the not scanned attachment. How can I fix this. Sender address is eprintcenterhp.com
A new HP printer software update comes through via the Mac. With the download, the HP Envy 120 is now sending E-mail scans with the attachment. The problem is resolved.
-
Cannot forward the e-mail with an attachment
I use att.net as my email, I can send emails fine and can reply and forward emails (which have no binding) but I can't send an email that has an attachment)
It keeps saying ' att.net Mail found the original e-mail, but met with some display problems. Please try again later. "
It works now, not sure what happened unless ATT knew the problem on Chrome and the fixed
-
How to create a job that e-mail with csv attached.
Hello
Could all help with that.
I have a trigger that inserts (after changing the DLL) on the diagram at track_t, (table).
Now, I put a job to convert track_t (table) to CSV data, daily...
Then, I need to define a job to send the mail on a daily basis with the attached csv.
set - trigger, procedue to send mail. But how to create a job to send a mail with csv generated
8ff4363d-844d-49fd-87D1-2125143d11a8 wrote:
Hello
Could all help with that.
I have a trigger that inserts (after changing the DLL) on the diagram at track_t, (table).
Now, I put a job to convert track_t (table) to CSV data, daily...
Then, I need to define a job to send the mail on a daily basis with the attached csv.
set - trigger, procedue to send mail. But how to create a job to send a mail with csv generated
DBMS_SCHEDULER
http://docs.Oracle.com/CD/E11882_01/AppDev.112/e25788/d_sched.htm#ARPLS72235
-
When l click on file and go on Send-> the only option is a shortcut on the desktop when l want to send Web etc. page with e-mail. I can do it the old way with Google, but l don't want 2 browsers. Thank you.
Hi Silleebee,
Unlike Windows XP, Windows 7 does not include a default email Client.
You will need to install the Windows Live Mail client or Microsoft Outlook and set it as your default for mail in CUSTOM (<>) article in Set Program Access and defaults of the computer , then restart your computer before any function send to or MailTo will become available.
Hope this information helps and let us know if you need help. We will be happy to help you.
-
WHEN I RECEIVE AN EMAIL WITH AN ATTACHMENT I CAN'T OPEN IT. IT SAYS WINDOWS MEDIA PLAYER CANNOT ACCESS THE FILE.
Help, please
How this is related to Windows Update, John?
Maybe you are looking for
-
Removed 'Administrator' error, States that 'the user '.
Have Window XP MCE and by mistake, remove 'administrator' and don't have account 'user '. Need to 'Administrator' to perform functions. How to add an account 'administrator '? System will only add more accounts 'User' but not an "Administrator" accou
-
I am trying to use the XP Backup Wizard backs up to a 32 GB external drive. About 5 GB, the backup shutdown and a message informs you that the 'band' is full. What I am doing wrong?
-
Windows 7 - restart your computer to finish installing important updates
I tried Windows 10 for only a few hours, before returning to Windows 7. The main reason was that 10 Windows could not find my additional screens (connected via USB-HDME adapters). Before ask you, Yes, my drivers are up to date. Since I returned to 7,
-
Selecting the item in a list of images
Hi @ll, I tried to get the selected item in a list of images (bbui - 0.9.2.js). If I try to get the selected item as described here https://github.com/BlackBerry/bbUI.js/wiki/image-list .. .the result is still "not defined". Here is my snip of code:
-
BlackBerry smartphones can not access to MMS and Internet after upgrading the operating system
Hi all. I am a new user of BB. I got my Curve 9300 three weeks back. As soon as it has been recorded, I was invited 2 upgrade operating system - which I made and subscribed 2 BB Protect. A friend sent me a MMS, but I can't consider my settings r bad.