Send an E-mail with an attachment procedure Oracle

Jin

I 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.

  • When a user sends an e-mail with an attachment through OWA, the recipient is invited to the username and password of the sender. Obviously, they don't and should not have this information. It happens on all emails.

    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.
    http://www.orafaq.com/wiki/Send_mail_from_PL/SQL
    but the attachment it sends is defined in the pl/sql block.
    I want to attach a file in a different location. How can I do this?

    Thanks in advance

    If 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.

    APEX_MAIL

    MK

  • When I try to send an e-mail with attached pictures, I am told that the photos will not appear in the e-mail message.

    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.

    http://answers.Microsoft.com/en-us/windowslive

  • 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.

    / * 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

  • How can I send an e-mail with Windows7 link using Internet Explorer as I used to be able to do this with Windows XP?

    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 e-mails with an attachment can not open, it says: Windows media player cannot access the file, Please HELP

    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

  • Backup Wizard stops at 5 GB

    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.