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

Tags: Database

Similar Questions

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

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

  • Sending Email with multiple attachments using packages

    Hi all

    Version: 10.2.0

    I am trying to send mail with multiple attachments using packages.

    I tried to use Mail_tools which is in http://www.myoracleportal.com/

    But I can send with only one attachment. Are there other options which i it allows to send with multiple attachments.

    I have bad do I send attachments Jasper instance < < converted to bytes > >.

    Please advice...

    TIA,

    My dear friend,

    If you are looking for in this forum - you can get it.

    Have you checked the forum?

    Anyway,.

    Here's the starter for you->

    http://forums.Oracle.com/forums/search.jspa?threadID=&q=sending+email+with+multiple+attachments+using+packages++&objid=F75&DateRange=last90days&NumResults=15

    Kind regards.

    LOULOU.

  • Create a trigger that send mail with attachment after insertion of a line in Oracle APEX

    I want to create an insert after trigger on a table that is to send a mail with an attachment. Here is my code.

    CREATE OR REPLACE TRIGGER tr_feedback

    AFTER INSERT on REVIEWS

    FOR EACH LINE

    DECLARE

    l_id NUMBER;

    BEGIN

    l_id: = APEX_MAIL. SEND)

                    p_to        => ' [email protected] ',

    P_FROM = >: NEW. E-mail

    p_subj = >: NEW. Object

    p_body = > "Please see the attachment."

    p_body_html = > ' review of < b > please < /b > the attachment ")

    APEX_MAIL. ADD_ATTACHMENT (p_mail_id = > l_id,)

    p_attachment = >: NEW. FILE,

    p_filename = >: NEW. FILE NAME,

    p_mime_type = >: NEW. MIME);

    END;

    But when I insert data, I get the following error:

    ORA-20022: Null value provided for the parameter p_filename.

    ORA-06512: at "APEX_040200.WWV_FLOW_MAIL", line 1070

    ORA-06512: at "APEX_040200.WWV_FLOW_MAIL_API", line 141

    ORA-06512: at "TR_FEEDBACK", line 11

    ORA-04088: error during execution of trigger 'TR_FEEDBACK '.

    Now, how can I fix that? Thanks in advance.

    Agree with the above.  Triggers (ab) should not be used in this way.  Nontransactional process should not be based on a transactional trigger.  These processes are part of the business logic and should be at the level of the company of codification (Summit, you can add a process to be executed once the completed insertion)

  • 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;
    
  • error in sending mails with attachments

    Hai friends, windows mail works fine for me, but I still have problem sending mail with attachments.

    When we send an attachment then windows Messaging mail tell our mail sending successfully, but it is stored in the Outbox & mail does not reach the destination. can we have the solution to this.

    Hi Sammy Anderson,

    Thanks for joining us out on the Microsoft Community forums.

    According to the description, you are experiencing problems sending mails with attachments. Please answer a few questions to refine the question.

    1. are you using Windows Live Mail to send and receive messages or are you referring to the mail application?

    2. do you get an error message?

    3. are you aware of changes to the computer before the show?

    If you are Windows Mail app, you can consult this article and also run the app troubleshooting utility that is provided in the notes.

    What to do if you have problems with a soft

    http://Windows.Microsoft.com/is-is/Windows-8/what-troubleshoot-problems-app

    If the problem is with Windows Live Mail, you can post the question in another Department for assistance.

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

    Hope this information helps. Get back to us if you have more queries about Windows.

  • Cannot send mail with windows mail. Get the pop-up Windows security.

    Cannot send mail with Windows Mail. Get the pop-up Windows security.

    Password and username are all correct. POP and SMTP everything is correct. If I remove all virus blocker, always get Windows security pop up asking for password and username; I type in it and click on the option to remember, but the window appears several times without sending a message. Error message box is empty.
    No problem on the end of e-mail servers. Equipped with Windows Vista.
    I deleted the Windows Mail disabled account, rebooted with the new account and the same problem.
    Can I receive the mail, but Windows Security blocking my attempts to send and don't remember the password and username that I type.
    Help!

    This kind of behavior is very often due to antivirus.  You are using.  If its McAfee or Norton get rid of them completely.   There are others who are also incompatible.  Everything you try, make sure that the analysis of e-mail is disabled.   You can also try to repair the database and see if that helps (see www.oehelp.com/WMUtil/).  And see also www.oehelp.com/OETips.aspx#3

    Steve

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

  • UTL_SMTP mail with an attachment (problem by attaching the zip file)

    Hi all

    I used the code for sending email with attachment below. but when I try to add the body of the message its does not work in the sense of sound do not attach my file. When I commented that border its attach the file.
    commented lines:
     -- utl_smtp.write_data(mail_conn,UTL_TCP.CRLF ||'Body' ||':'|| text || UTL_TCP.CRLF);
    
      --utl_smtp.write_data(mail_conn,UTL_TCP.CRLF||text || UTL_TCP.CRLF );
    How to solve this problem?

    Full procedure.
    create or replace
    procedure sssl_send_mail (
          p_sender varchar2,
          p_recipient varchar2,
          p_cc varchar2,
          p_subject varchar2,
          p_filename varchar2,
          text varchar2) is     
        --c utl_smtp.connection;
        v_raw raw(57);
        v_length integer := 0;
        v_buffer_size integer := 57;
        v_offset integer := 1;
        mailhost    VARCHAR2(64) := 'xxxxxxxxxx';
        port constant number(2):=25;
        timeout number :=180;
        mail_conn  utl_smtp.connection;   
     p_blob Blob;
     temp_os_file bfile;
     ex number;  
    begin  
       DBMS_LOB.CREATETEMPORARY(p_blob,true);
       temp_os_file := BFILENAME ('xxxxxxxx',p_filename);
       ex := dbms_lob.fileexists(temp_os_file);
          if ex = 1 then
             dbms_lob.fileopen(temp_os_file, dbms_lob.file_readonly);
             dbms_lob.loadfromfile(p_blob,temp_os_file, dbms_lob.getlength(temp_os_file));
             dbms_lob.fileclose(temp_os_file);
           end if;
       mail_conn := utl_smtp.open_connection(mailhost, port,timeout);
       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.open_data(mail_conn);
      utl_smtp.write_data(mail_conn,'From'||':'|| p_sender || UTL_TCP.CRLF);
      utl_smtp.write_data(mail_conn,'To'||':'|| p_recipient || UTL_TCP.CRLF);
      utl_smtp.write_data(mail_conn,'CC'||':'|| p_cc || UTL_TCP.CRLF);
    
    
      utl_smtp.write_data(mail_conn,'Subject' ||':'|| p_subject || UTL_TCP.CRLF);
    
     -- utl_smtp.write_data(mail_conn,UTL_TCP.CRLF ||'Body' ||':'|| text || UTL_TCP.CRLF);
    
      --utl_smtp.write_data(mail_conn,UTL_TCP.CRLF||text || UTL_TCP.CRLF );
    
    
    
        utl_smtp.write_data( mail_conn, 'Content-Disposition: attachment; filename="' || p_filename || '"' || utl_tcp.crlf);
        utl_smtp.write_data( mail_conn, 'Content-Transfer-Encoding: base64' || utl_tcp.crlf );
        utl_smtp.write_data( mail_conn, utl_tcp.crlf ); 
        v_length := dbms_lob.getlength(p_blob);     
        <<while_loop>>
        while v_offset < v_length loop
          dbms_lob.read( p_blob, v_buffer_size, v_offset, v_raw );
          utl_smtp.write_raw_data( mail_conn, utl_encode.base64_encode(v_raw) );
          utl_smtp.write_data( mail_conn, utl_tcp.crlf );
          v_offset := v_offset + v_buffer_size;
        end loop while_loop;
        utl_smtp.write_data( mail_conn, utl_tcp.crlf );
        utl_smtp.close_data(mail_conn);
        utl_smtp.quit(mail_conn);
      exception
        when utl_smtp.transient_error or utl_smtp.permanent_error then
          utl_smtp.quit(mail_conn);
          raise;
        when others then
        raise;
      end;
    Please, help me to solve this problem.

    Thanks in advance.

    See you soon,.
    Shan.

    Published by: Shan on January 13, 2011 13:08

    Published by: Shan on January 14, 2011 15:22

    I don't have your question on the BLOB store. I read the disk file (BFILE) and then storing it in temporary LOB. I send a file in my hotmail and it came as an attachment.

    DECLARE
      /*LOB operation related varriables */
      v_src_loc  BFILE := BFILENAME('SAUBHIK', 'Waterlilies.jpg');
      l_buffer   RAW(54);
      l_amount   BINARY_INTEGER := 54;
      l_pos      INTEGER := 1;
      l_blob     BLOB := EMPTY_BLOB;
      l_blob_len INTEGER;
      v_amount   INTEGER;
    
      /*UTL_SMTP related varriavles. */
      v_connection_handle  UTL_SMTP.CONNECTION;
      v_from_email_address VARCHAR2(30) := '[email protected]';--change your email address
      v_to_email_address   VARCHAR2(30) := '[email protected]'; --change your email address
      v_smtp_host          VARCHAR2(30) := '9.182.156.144'; --My mail server, replace it with yours.
      v_subject            VARCHAR2(30) := 'Your Test Mail';
      l_message            VARCHAR2(200) := 'This is test mail using UTL_SMTP';
    
      /* This send_header procedure is written in the documentation */
      PROCEDURE send_header(pi_name IN VARCHAR2, pi_header IN VARCHAR2) AS
      BEGIN
        UTL_SMTP.WRITE_DATA(v_connection_handle,
                            pi_name || ': ' || pi_header || UTL_TCP.CRLF);
      END;
    
    BEGIN
      /*Preparing the LOB from file for attachment. */
      DBMS_LOB.OPEN(v_src_loc, DBMS_LOB.LOB_READONLY); --Read the file
      DBMS_LOB.CREATETEMPORARY(l_blob, TRUE); --Create temporary LOB to store the file.
      v_amount := DBMS_LOB.GETLENGTH(v_src_loc); --Amount to store.
      DBMS_LOB.LOADFROMFILE(l_blob, v_src_loc, v_amount); -- Loading from file into temporary LOB
      l_blob_len := DBMS_LOB.getlength(l_blob);
    
      /*UTL_SMTP related coding. */
      v_connection_handle := UTL_SMTP.OPEN_CONNECTION(host => v_smtp_host);
      UTL_SMTP.HELO(v_connection_handle, v_smtp_host);
      UTL_SMTP.MAIL(v_connection_handle, v_from_email_address);
      UTL_SMTP.RCPT(v_connection_handle, v_to_email_address);
      UTL_SMTP.OPEN_DATA(v_connection_handle);
      send_header('From', '"Sender" <' || v_from_email_address || '>');
      send_header('To', '"Recipient" <' || v_to_email_address || '>');
      send_header('Subject', v_subject);
    
      --MIME header.
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          'MIME-Version: 1.0' || UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          'Content-Type: multipart/mixed; ' || UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          ' boundary= "' || 'SAUBHIK.SECBOUND' || '"' ||
                          UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle, UTL_TCP.CRLF);
    
      -- Mail Body
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          '--' || 'SAUBHIK.SECBOUND' || UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          'Content-Type: text/plain;' || UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          ' charset=US-ASCII' || UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle, UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle, l_message || UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle, UTL_TCP.CRLF);
    
      -- Mail Attachment
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          '--' || 'SAUBHIK.SECBOUND' || UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          'Content-Type: application/octet-stream' ||
                          UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          'Content-Disposition: attachment; ' || UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          ' filename="' || 'Waterlilies.jpg' || '"' || --My filename
                          UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          'Content-Transfer-Encoding: base64' || UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle, UTL_TCP.CRLF);
    
      /* Writing the BLOL in chunks */
      WHILE l_pos < l_blob_len LOOP
        DBMS_LOB.READ(l_blob, l_amount, l_pos, l_buffer);
        UTL_SMTP.write_raw_data(v_connection_handle,
                                UTL_ENCODE.BASE64_ENCODE(l_buffer));
        UTL_SMTP.WRITE_DATA(v_connection_handle, UTL_TCP.CRLF);
        l_buffer := NULL;
        l_pos    := l_pos + l_amount;
      END LOOP;
      UTL_SMTP.WRITE_DATA(v_connection_handle, UTL_TCP.CRLF);
    
      -- Close Email
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          '--' || 'SAUBHIK.SECBOUND' || '--' || UTL_TCP.CRLF);
      UTL_SMTP.WRITE_DATA(v_connection_handle,
                          UTL_TCP.CRLF || '.' || UTL_TCP.CRLF);
    
      UTL_SMTP.CLOSE_DATA(v_connection_handle);
      UTL_SMTP.QUIT(v_connection_handle);
      DBMS_LOB.FREETEMPORARY(l_blob);
      DBMS_LOB.FILECLOSE(v_src_loc);
    
    EXCEPTION
      WHEN OTHERS THEN
        UTL_SMTP.QUIT(v_connection_handle);
        DBMS_LOB.FREETEMPORARY(l_blob);
        DBMS_LOB.FILECLOSE(v_src_loc);
        RAISE;
    END;
    

    http://saubbane.blogspot.com/2011/01/sending-binary-attachmentimages-in-mail.html

  • How to send a large file attachment using iCloud mail

    I try to send an email with an attachment. The file size is 29.8 and message indicates the size of the file is greater than the limit of 28.5.  I can't find the mailbox. How can I find box mailbox?  Is there anything else I can do?

    Are you connect to your iCloud account, when you try to send the attachment of t? So little should be automatic:

    Send large attachments by using the mailbox

    You can use the mailbox to send files that exceed the maximum size allowed by your ISP email account . Mailbox post large attachments to iCloud, where they are encrypted and stored for 30 days.

    • If you have an iCloud account and you're connected to iCloud when you click on send, mail will automatically send the attachments using the mailbox. Mail attachments do not count against your storage iCloud.
    • If you have not an iCloud account, or if you are not connected, Mail asking you if you want to use the mailbox (always use send, select "no longer request for this account").

    If a recipient using Mail in OS X Yosemite or later, attachments are included with your message. For the other beneficiaries, your message includes links to download attachments and their expiry date.

    You can activate the mailbox or disable an account. Choose Mail > Preferences, click accounts, select the account, click Advanced, and then select or deselect the option "send large attachments with box.

  • Problem sending Mails with attachment binary BlackBerry 4.5

    Hallo,

    my code well testet, sending binary content as an attachment no longer works on 4.5.0:

    ------------------------

    settings specified in the signature of mtehod
    String url = "blackberry20@test";
    Byte [] requestdata / /... of the binary data (really!)

    create new message
    final Message message = New Message();

    define the recipient (as it appears in the url)
    message.addRecipients (Message.RecipientType.TO,
    new address [] {new address (url, url)});
           
    String msgID = (DeviceInfo.getDeviceId () + "_" + System.currentTimeMillis ()) .toUpperCase ();
    message.setSubject (msgID);

    create the body... empty text
    Several multipart part = new Multipart();
    TextBodyPart txtBody = new TextBodyPart (multipart);
    txtBody.setContent("");
    multipart.addBodyPart (txtBody);

    create attachments and add
    AttachmentPart SupportedAttachmentPart = new SupportedAttachmentPart (multipart);
    attachmentPart.setContentType("application/octet-stream");
    attachmentPart.setFilename (msgID);
    attachmentPart.setContent (requestData);

    multipart.addBodyPart (attachmentPart);
    message.setContent (multipart);

    Send mail in own thread
    Thread thread = new Thread ('Send Mail Thread') {}

    public void run() {}
    try {}
    Transport.Send (message);
    } catch (Throwable e) {}
    System.Err.println ("error sending message" + e.getClass () .getName () + "/" + e.getMessage ());
    }
    }
    };
    thread. Start();

    ------------------------

    This code has been compiled with JDE 4.0 and worked fine on 4.0, 4.1, 4.2

    It works on my 4.5.0.55 _not_ shrimp (BES 4.1.4) and on a "BOLD" customer (4.6.0.X/BES > = 4.1.4)

    It seems to be an attachment API on 4.5.0, of the major changes that are not compatible with older versions.

    -Are there workarounds?
    -Are there examples how to do work on > = 4.5?
    -How to be always compatible backword for 4.0, 4.1, 4.2?
    -What impact have the BES/BIS-platform on these issues?
    -Are there serious documentation out there how to set the ContentType, Filename, etc.?

    Would be great if some have had a (customers get angry response

    Thanx, Jens Kinzel

    Hello Mark,

    I tried the example excatly you mentioned: If the content was about 60Bytes.

    The following code does NOT work on > = 4.5:
    ---------------------
    public static sendHTMLMailRIMExample (String address) Sub throws {MessagingException}

    create a multipart
    Multipart MP = new Multipart();

    data for the content of the file
    FileData = string"just a simple test";
    String messageData = "Mail attachment Demo";

    create the file
    SAP SupportedAttachmentPart = new SupportedAttachmentPart (mp, "text/html", "upploadare", fileData.getBytes ());

    The PTB TextBodyPart = new TextBodyPart (mp, messageData);

    Add the file to the multipart
    mp.addBodyPart (BSC);
    mp.addBodyPart (sap);

    create a message in the sent items folder
    Folder folders [] is Session.getDefaultInstance () .getStore () .list (Folder.SENT);.

    Message message = new Message(folders[0]);

    Add recipients to the message and send it

    Address = new address (address, address);
    [ToAdds] address = new address [1];
    toAdds [0] = n;
    message.addRecipients (Message.RecipientType.TO, toAdds);
    message.setContent (mp);

    Transport.Send (message);
    }
    --------------------

    I found that the problem is a combination of Firmware and BES. Here are the relevant areas of the BES-Logfile:

    Example 1: Mail is rejected
    --------------
    MAGT-Log:
    [40000] (12/17 13:58:31.943): {0x14C8} [BENNETT] received datagram, Tag = 64192
    [40700] (12/17 13:58:31.943): {0 x 1534} {[email protected]} received device package, size is 199, TransactionId = 1152541538, Tag = 64192, content type = CMIME, cmd = 0 x 3
    [20212] (12/17 13:58:31.943): {0 x 1534} {[email protected]} StreamToMessage() failed, Tag = 64192
    [40275] (12/17 13:58:31.943): {0 x 1534} {[email protected]} error in transaction of sending to the device for the transaction 1152541538, size = 40, TransactionId = 920681772, Tag = 140390
    [40279] (12/17 13:58:31.943): {0 x 1534} {[email protected]} SubmitToRelaySendQ, Tag = 140390
    [40000] (12/17 13:58:31.943): {0x14D0} [BENNETT] send data, Tag = 140390
    [40279] (12/17 13:58:31.943): {0 x 1534} {[email protected]} SubmitToRelaySendQ, Tag = 64192
    [40000] (12/17 13:58:31.943): {0x14D0} [BENNETT] send status DATA_ACCEPTED, Tag = 64192
    [40000] (12/17 13:58:32.896): {0x14C8} [BENNETT] received State DELIVERED, Tag = 140390

    DISP-Log
    [30222] (12/17 13:58:31.943): {0 x 1104} {myBlackBerry} MFH: contentType = CMIME, sizeOTA = 172, sizeOTW = 162, TransactionId = 1152541538, Tag = 1705182
    [30308] (12/17 13:58:31.943): {0 x 1104} [BIPPa] {myBlackBerry} transfer data to BES Agent (S10096620_001), size = 199, intTag = 64192, Tag = 1705182
    [30311] (12/17 13:58:31.943): {0x110C} {myBlackBerry} Forwarding status of relay, intTag = 64192, Tag = 1705182, Status = 1
    [30368] (12/17 13:58:32.896): {0 x 1110} {myBlackBerry} package was delivered to the device, Tag = 233560
    [30388] (12/17 13:58:32.896): {0 x 1110} [BIPPa] {myBlackBerry} status transfer to BES Agent (S10096620_001), intTag = 140390, extTag = 233560

    ALRT-Log
    [30000] (12/17 13:58:31.990): {0x5F4} EventLog::ThreadProc: received notification, treatment...
    [30000] (12/17 13:58:31.990): {0x5F4} [Alarm::ActivateAlarm] alarm Queuing: | BlackBerry messaging Agent Agent of S-05-005 1 (S-05-005 applications event log). 2008-12-17 13:58:31 (AFFF4EF4)-> {[email protected]} StreamToMessage() failed, Tag = 64192
    [30000] (12/17 13:58:31.990): {0x5C0} Alarm::ThreadProc: received an alarm message
    ------------------

    Example 2: The mail is sent
    ------------------
    MAGT-Log
    [40000] (12/17 14:11:33.109): {0x14C8} [BENNETT] received datagram, Tag = 64209
    [40700] (12/17 14:11:33.109): {0 x 1540} {[email protected]} received device package, size is 243, TransactionId = 201738721, = 64209, content type Tag = CMIME, cmd = 0 x 3
    [30112] (12/17 14:11:33.125): {0 x 1540} {[email protected]} receipt message to the device, RefId = 1323541580, Tag 64209, TransactionId = 201738721 =
    [40292] (12/17 14:11:33.687): {0 x 1540} {[email protected]} E-mail message sent to device, Tag = 64209
    [40279] (12/17 14:11:33.687): {0 x 1540} {[email protected]} SubmitToRelaySendQ, Tag = 64209
    [40000] (12/17 14:11:33.687): {0x14D0} [BENNETT] send status DATA_ACCEPTED, Tag = 64209
    -------------------------

    After fiddling around with the structure of the MIME multipart-message Types, I found a solution that works for me:

    -------------------------
    ' Private Sub sendRequest (String url, byte [] requestData) get {MessagingException}

    create new message
    final Message message = New Message();

    define the recipient (as it appears in the url)
    message.addRecipients (Message.RecipientType.TO,
    new address [] {new address (url, url)});

    create topic: device over the current timestamp
    String msgID = ("DATA"_System.currentTimeMillis ()) .toUpperCase ();
    message.setSubject (msgID);

    create the body... a text
    Several multipart part = new Multipart();
    TextBodyPart txtBody = new TextBodyPart (multipart);
    txtBody.setContent (msgID);
    multipart.addBodyPart (txtBody);

    create attachments and add
    AttachmentPart SupportedAttachmentPart = new SupportedAttachmentPart (multipart);
    attachmentPart.setContentType("text/xml");

    attachmentPart.setContent (requestData);
    attachmentPart.setFilename (msgID + ".xml");
    multipart.addBodyPart (attachmentPart);
    message.setContent (multipart);
       
    Transport.Send (message);
    }
    ------------------------

    Let me say thank you for your ideas a Council. From my side, the problem is closed so far-
    even though im not sure if it will work for all environments.

    I'm not shure where the initial problem was (Firmware / BES - combination?) or something else.

    Thank you

    Jens Kinzel
    LÍNEAS Informationstechnik GmbH
    D-38122 Braunschweig, Germany

  • Cannot send mail with UTL_SMTP

    Hello

    I use utl_smtp package to send mail. Instance-based local data I can send mails to my desktop e-mail id (that is configured in outlook).

    But I need to send an e-mail to e-mail for the customer domain id, it does not work... It shows the error:

    ORA-20000: cannot send an e-mail: ORA-29278: SMTP temporary error: 421 Service not available

    I got the port number and ip address of our DBAs.

    The code is:

    DECLARE

    v_from VARCHAR2 (80): = ' [email protected] ';

    v_recipient VARCHAR2 (80): = ' [email protected] ';

    v_subject VARCHAR2 (80): = "test subject";

    v_mail_host VARCHAR2 (30): = "192.165.22.30";

    v_mail_conn UTL_SMTP.connection;

    CRLF VARCHAR2 (2): = CHR (13) | CHR (10);

    BEGIN

    v_mail_conn: = UTL_SMTP.open_connection (v_mail_host, 21443);

    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. DATA (v_mail_conn,

    ' Date: '

    || To_char (SYSDATE, ' Dy, hh24:mi:ss DD month YYYY ")

    || CRLF

    || "To:

    || v_from

    || CRLF

    || "Subject:"

    || v_subject

    || CRLF

    || « À : »

    || v_recipient

    || CRLF

    || CRLF

    || "user name:'"

    || ' '

    || CRLF

    ||                                           -Body of the message

    "pwd: '"

    || ''

    || CRLF

    );

    UTL_SMTP. Quit (v_mail_conn);

    EXCEPTION

    WHEN UTL_SMTP.transient_error OR UTL_SMTP.permanent_error

    THEN

    raise_application_error (-20000, "cannot send an email: ' |") SQLERRM);

    END;

    /

    What could be the problem to get this error.

    Please help me go further...

    Thank you

    lucky.

    In fact, it is even clearer:

    "talk to your network or SA guys, you don't have a Server SMTP configuration to the place you want.

    to get to.  You should ask them "so, what is the good name and port number for me to use for the host.

    send email via SMTP from this server? » »

    http://asktom.Oracle.com/pls/Apex/f?p=100:11:0:P11_QUESTION_ID:255615160805 #53465173227894

    and if you ctrl + f for 421 on this page, you will get more explanations.

    It is not a problem in the database.

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

  • Encoding file attached using UTL_SMTP.

    Hello group,

    I was asked to use UTL_SMTP to send a simple file in a version of oracle 9i on Windows database, I get the attachment to my mail, but the problem is that when we open the file, the text shows junk characters, or only numbers...

    What controls for setting the text encoding or what I'm doing wrong.

    Thanks in advance.
    declare
      l_maicon utl_smtp.connection;
      l_boundary    VARCHAR2(50) := '----=*#abc1234321cba#*=';
    ---
      v_archivo bfile:=NULL;
      v_texto varchar(4000);
      v_adjunto raw(32767);
    begin
      l_maicon :=utl_smtp.open_connection('mail.anyuser.com');
      utl_smtp.helo(l_maicon,'hostname');
      utl_smtp.mail(l_maicon,'[email protected]');
      utl_smtp.rcpt(l_maicon,'[email protected]');
    
      UTL_SMTP.open_data(l_maicon);
      
      UTL_SMTP.write_data(l_maicon, 'Date: ' || TO_CHAR(SYSDATE, 'DD-MON-YYYY HH24:MI:SS') || UTL_TCP.crlf);
      UTL_SMTP.write_data(l_maicon, 'To: ' || '[email protected]' || UTL_TCP.crlf);
      UTL_SMTP.write_data(l_maicon, 'From: ' || '[email protected]' || UTL_TCP.crlf);
      UTL_SMTP.write_data(l_maicon, 'Subject: ' || 'test email oracle 9i con anexado'|| UTL_TCP.crlf);
    --  UTL_SMTP.write_data(l_maicon, 'Reply-To: ' || p_from || UTL_TCP.crlf);
      UTL_SMTP.write_data(l_maicon, 'MIME-Version: 1.0' || UTL_TCP.crlf);
      UTL_SMTP.write_data(l_maicon, 'Content-Type: multipart/mixed; boundary="' || l_boundary || '"' || UTL_TCP.crlf || UTL_TCP.crlf);
      
      UTL_SMTP.write_data(l_maicon, '--' || l_boundary || UTL_TCP.crlf);
      UTL_SMTP.write_data(l_maicon, 'Content-Type: text/plain; charset="iso-8859-1"' || UTL_TCP.crlf || UTL_TCP.crlf);
    
      UTL_SMTP.write_data(l_maicon, 'test de email oracle 9i, pf no tomar en cuenta');
      UTL_SMTP.write_data(l_maicon, UTL_TCP.crlf || UTL_TCP.crlf);
    
    
      UTL_SMTP.write_data(l_maicon, '--' || l_boundary || UTL_TCP.crlf);
      UTL_SMTP.write_data(l_maicon, 'Content-Type: ' || 'text/plain; charset="iso-8859-1"' || '; name="' || 'switch.sql' || '"' || UTL_TCP.crlf);
      UTL_SMTP.write_data(l_maicon, 'Content-Transfer-Encoding: base64' || UTL_TCP.crlf);
      UTL_SMTP.write_data(l_maicon, 'Content-Disposition: attachment; filename="' || 'switch.sql' || '"' || UTL_TCP.crlf || UTL_TCP.crlf);
    
      v_archivo:=bfilename('BDUMP', 'switch.sql');
      dbms_lob.fileopen(v_archivo, dbms_lob.file_readonly);
      v_adjunto:=dbms_lob.substr(v_archivo);
    --  v_texto:=dbms_lob.substr(v_archivo);
      dbms_lob.close(v_archivo);
    
      UTL_SMTP.write_data(l_maicon, v_adjunto);
    
      UTL_SMTP.write_data(l_maicon, UTL_TCP.crlf || UTL_TCP.crlf);
      
      UTL_SMTP.write_data(l_maicon, '--' || l_boundary || '--' || UTL_TCP.crlf);
      UTL_SMTP.close_data(l_maicon);
    
      utl_smtp.quit(l_maicon);
    end;
    /

    You informed of your recipient, you put the file encoded as an attachment

     UTL_SMTP.write_data(l_maicon, 'Content-Transfer-Encoding: base64' || UTL_TCP.crlf); 
    

    but you put lob not encoded file

     v_archivo:=bfilename('BDUMP', 'switch.sql');
      dbms_lob.fileopen(v_archivo, dbms_lob.file_readonly);
      v_adjunto:=dbms_lob.substr(v_archivo);
    --  v_texto:=dbms_lob.substr(v_archivo);
      dbms_lob.close(v_archivo);
    

    Your recipient is trying to not decode not encoded the file and spit out.

    You must code them your attachment with UTL_ENCODE.base64_encode before sending an email.

Maybe you are looking for