close

spanish translator download pinnacle studio 16 plus trial download quicktime pro 7 download lion quarkxpress 7 3 free download for mac Oracle8i On-Line Generic Documentation Release 3 8.1.7 Oracle8i Online Documentation CD-ROM Release 3 8.1.7 for Microsoft Windows Oracle8i Client Online Documentation CD-ROM Release 3 8.1.7 for Microsoft Windows Oracle interMedia Audio, Image, and Video Java Classes Users Guide and Reference, Release 8.1.7 Oracle8i Documentation Addendum, Release 8.1.7 Oracle Label Security Administrators Guide Release 8.1.7 Oracle Heterogeneous Services Release 8.1.7 Oracle8i 8.1.7 Installation Guide for Windows NT Oracle8i 8.1.7 Client Installation Guide for Windows Oracle8i 8.1.7 Release Notes for Windows NT Legato Storage Manager Command Reference Guide Release 8.1.7 for Windows 2000 and Windows NT Oracle Message Broker 2.0.1.0 Installation Guide for Windows NT Oracle Applications InterConnect Installation Guide Release 4.0.0 for Windows NT and UNIX Oracle8i Administrators Reference Release 3 8.1.7 for AIX-Based Systems Oracle8i Installation Guide Release 3 8.1.7 for AIX-Based Systems Oracle8i Release Notes Release 3 8.1.7 for AIX-based Systems 64-bit Oracle8i Release Notes Release 3 8.1.7 for AIX-Based Systems Oracle Message Broker Installation Guide, Release 2.0.1.0 Stand-alone for AIX-Based Systems Oracle8i Administrators Reference Release 3 8.1.7 for Compaq Tru64 UNIX Oracle8i Installation Guide Release 3 8.1.7 for Compaq Tru64 UNIX Oracle8i Release Notes Release 3 8.1.7 for Compaq Tru64 UNIX Oracle Message Broker Installation Guide, Release 2.0.1.0 Stand-alone for Compaq Tru64 UNIX Oracle8i Administrators Reference Release 3 8.1.7 for HP 9000 Series HP-UX Oracle8i Installation Guide Release 3 8.1.7 for HP 9000 Series HP-UX Oracle8i Release Notes Release 3 8.1.7 for HP Series 9000 HP-UX 64-Bit Oracle Message Broker Installation Guide, Release 2.0.1.0 Stand-alone for HP 9000 Series HP-UX Oracle Procedural Gateway for APPC Installation and Configuration Guide Release 8.0.6.1.0 for HP9000 Series 700/800 Oracle8i Administrators Reference Release 3 8.1.7 for Linux Intel Oracle8i Installation Guide Release 3 8.1.7 for Linux Intel Oracle8i Release Notes Release 3 8.1.7 for Linux Intel Oracle8i Installation Guide Release 3 8.1.7 for Alpha OpenVMS Oracle8i Parallel Server Addendum Release 3 8.1.7 for Alpha OpenVMS Oracle8i Release Notes Release 3 8.1.7 for Alpha OpenVMS Oracle8i 8.1.7 Server and Tools Administrators Guide for Alpha OpenVMS Oracle8i Administrators Reference Release 3 8.1.7 for Sun SPARC Solaris Oracle8i Installation Guide Release 3 8.1.7 for Sun SPARC Solaris Oracle8i Release Notes Release 3 8.1.7 for Sun SPARC Solaris Oracle 8i Release Notes Release 3 8.1.7 for Sun SPARC Solaris 64-bit Oracle8i Release Notes Release 3 8.1.7 for IBM DYNIX/ptx Oracle8i Administrators Reference Release 3 8.1.7 for IBM DYNIX/ptx Oracle8i Installation Guide Release 3 8.1.7 for IBM DYNIX/ptx Oracle8i Installation Guide Release 3 8.1.7 64 Bit for SGI IRIX Oracle8i Administrators Reference Release 3 8.1.7 64 Bit for SGI IRIX Oracle8i Installation Guide Release 3 8.1.7 for Unified Intel UNIX Oracle8i Administrators Reference Release 3 8.1.7 for Intel UNIX DG/UX, SCO UnixWare, Solaris Intel Oracle8i Release Notes Release 3 8.1.7 for Intel UNIX DG/UX Intel and SCO UnixWare Oracle 8i Release Notes Release 3 8.1.7 for Solaris Intel UNIX Oracle8i Installation Guide 64 Bit Release 8.1.7 for Fujitsu Siemens ReliantUNIX Oracle8i Administrators Reference 64 Bit 8.1.7 for Fujitsu Siemens ReliantUNIX Oracle8i Release Notes Release 3 8.1.7 64 Bit for SGI IRIX Oracle8i Server 8.1.7 for Fujitsu Siemens Computers BS2000/OSD Users Guide Oracle8i Server 8.1.7 for Fujitsu Siemens Computers BS2000/OSD Installation and Database Administration Guide Phone: 1.800.633.0738 Great Customers, See how Oracle company is using SaaS, PaaS, IaaS, and also other technologies to change their businesses and engage customers in new and much better ways. Oracle announces beta accessibility of Oracle Database 12 c, Release 2 providing more agility and scalability for cloud deployments. Welcome on the most comprehensive portfolio of cloud solutions for ones business, IT infrastructure, and development needs. What key performance indicators matter inside Digital Age, and ways in which do you measure their value for the business? New global research by CIMA shows the best way to build a next-generation finance function in a position to capture the additional value being produced by digital technologies. Market-leading vertical software to perform your core business. Recruit, develop, and retain top talent which has a socially oriented, data-rich cloud software suite. Oracle announces breakthrough processor and systems design with SPARC M7, featuring Security in Silicon, SQL in Silicon for unparalleled database efficiency, and record-setting enterprise performance. New applications, platforms, and tools broaden Oracles complete enterprise cloud. Everything an enterprise manager would need to know. Oracle President Thomas Kurian discusses the benefits of Oracle Database from the Oracle Cloud. Transform your online business with Oracle Cloud. Oracle Marketing Cloud creates ideal customers. Learn what sort of Oracle Cloud Platform can accelerate your company. Platform to be a service enables you to rapidly develop scalable apps. Oracle Cloud Platform to be a Service is created for developers. IDC Research weighs in on Platform to be a Service. Discover how you can drive innovation. Second quarter fiscal year 2016 results show continued acceleration in cloud. Finding the appropriate library. Its about cloud at each and every level from the enterprise. How Oracle Database 12 c In-Memory outperforms SAPs HANA in-memory database. Cloud could be the only way for companies to discover the speed and innovation they really need. Oracles Configure, Price, Quote tool is transforming selling practices. See what CERN European Laboratory for Particle Physics discovered. His speak to Oracle CEO Mark Hurd offers clues about the transformation underway with the digital industrial giant. Hitachi moved 650 subsidiaries to centralized recruiting. When DX Marketing needed to scale up and save money, there seemed to be only one spot to turn. Four Conferences: Modern CX, Finance, HCM, and Supply Chain. Oracle Industry Connect: Orlando, April 2016 Thought leadership as well as practices. Oracle CloudWorld: Seoul, January 19 Featuring keynotes for Oracle executives and industry visionaries. Five Conferences: Modern CX, Finance, HCM, Supply Chain, and IT. Modern Supply Chain Experience: Jan 25 27, 2016 Come to San Jose for optimum practices and new solutions through the top supply chain innovators. Simplify processes and accelerate decisions. Align processes and remain compliant. Support growth and innovation and exploit enabling technologies. Leverage insight, empower teams and reach your goals. Connect with mobile and resolve issues quickly. Phone: 1.800.633.0738 Oracle reports significant cloud growth, with SaaS and Paas revenues up 39% in constant currency, in second quarter fiscal year 2016 results. New applications, platforms, and tools broaden Oracle s complete enterprise cloud. In-depth articles on Oracle technology now in your smartphone and tablet. Data Capital can be a foundation for that future. Oracle s Configure, Price, Quote tool is transforming selling practices. Phone: 1.800.633.0738 HTTP/1.0 302 Found Location: /pls/asktom/f?p100:11:0::::P11QUESTIONID:255615160805 Server: BigIP Connection: Keep-Alive Content-Length: 0 Sending e-mail! - - Oracle 8i specific response Thanks with the question, Leonardo. Answered by: Tom Kyte Last updated: May 30, 2013 - 2:58 pm UTC Category: Application Server Version: 8.1.5 How to send out personalized email to clients registered around my portal while using the information kept in our Database Oracle 8i automatically? This is often a sample chapter from my book Expert One on One Oracle - it describes the way to send email from Oracle versions 816 and the java only approach described about halfway through works in 815 far better UTLSMTP and sending mail UTLSMTP, introduced with the first time in Oracle 8.1.6, is surely an interface towards the Simple Mail Transfer Protocol. It requires that you've an SMTP server as part of your network somewhere? most sites I have been to get at least one SMTP server running as it's the most popular way of sending mail. The UTLSMTP package is best suited for sending small, text only emails from your database. While its API sports ths sending of attachments and everything? it's left for you to actually encode the multi-part document? for instance turning binary attachments into mime-encoded documents. Weve already seen tips on how to use UTLSMTP from the DBMSJOB section where we managed to make it apparently execute faster by performing it asynchronously. In this section we?ll revisit that example, build upon it? adding additional functionality. We will also have a look at an alternative to UTLSMTP that delivers somewhat considerably more functionality? such as ability to simply send attachments with all the email. Since SMTP is really a very low level protocol, well reuse existing public domain code for getting an SMTP interface at higher level? and well understand with almost no code. UTLSMTP? a more substantial example In the DBMSJOB section, we explored how you can make sending email using UTLSMTP seem to execute faster. We also made email transactional anyway in that section? should you rollback the email isn't getting sent, when you commit? out it's. I strongly suggest the use of DBMSJOB like a layer in your emails routines because of this. In that section, the example UTLSMTP routine we used was: tkyteTKYTE816 create or replace 2 PROCEDURE sendmail psender IN VARCHAR2, 3 precipient IN VARCHAR2, 4 pmessage IN VARCHAR2 5 as 6 lmailhost VARCHAR2255: ; 7 lmailconn ; 8 BEGIN 9 lmailconn: connectionlmailhost, 25; 10 lmailconn, lmailhost; 11 lmailconn, psender; 12 lmailconn, precipient; 13 datalmailconn ; 14 datalmailconn, pmessage; 15 datalmailconn ; 16 lmailconn; 17 end; 18Procedure created. tkyteTKYTE816 begin 2 sendmail, 3, 4 Hello Tom ; 5 end; 6PL/SQL procedure successfully completed. That works OK but is quite limited in the wild. It sends email to exactly one recipient, you are unable to CC or BCC anyone, you are unable to setup an issue - - the email always arrives which has a?blank? subject line. We would like to back up more options with this particular package. A full discussion from all of the possibilities with UTLSMTP would require thorough knowledge from the SMTP protocol itself? an issue that is beyond the scope in this book. Readers considering all on the opportunities provided by SMTP should review RFC812? which will be the description of SMTP. This is available on the web at Below, I will simply present how you can send a message using UTLSMTP that supports: o Multiple?to? recipients o Multiple?cc? recipients o Multiple?bcc? recipients o A single body as much as 32k in dimensions o A subject line o A descriptive?from? line as opposed to showing precisely the email address as being the?from? within the email client A specification for the PLSQL package that supports it might look like the next. In here, we define a wide range type to allow to get a caller to simply send a directory of recipients in addition to provide the external specification on the PLSQL routine as well as implementing: tkyteTKYTE816 create or replace package mailpkg 2 as 3 type array is table of varchar2255; 4 5 procedure send psenderemail in varchar2, 6 pfrom in varchar2, 7 pto in array default array, 8 pcc in array default array, 9 pbcc in array default array, 10 psubject in varchar2, 11 pbody in long ; 12 end; 13Package created. The package body due to this implementation is comparatively straightforward? if understand just enough from the SMTP protocol and what a contact looks like how email clients find the From, To, CC and many others. Before we look in the code, we?ll check out what a contact might actually appear to be. Consider the next ASCII text: Date: 13 May 01 12:33:22 From: Oracle Database Account Subject: This can be a subject To:, Cc: Hello Tom, this can be the mail you will need That is what you'll transmit because the body on the email using UTLSMTP to possess the email client set the From, Subject, and the like. There are no SMTP commands to do this magic, rather, this header details are placed right inside body from the email itself? separated through the text from the email with a blank line. Once we know that? sending a communication with the many options we'd like is pretty easy. The only thing we'd like to understand beyond that may be that in order to deliver the email to more the other recipient, we only call more then once? with various names. That?s the many information we end up needing to know then to send out an email. So, this is actually the package body. We start that has a couple of constants and globals. You will needless to say need to customize the gmailhost to get the name of a server you can find, Aria is my machine inside Oracle? you simply won't be capable to access that: tkyteTKYTE816 create or replace package body mailpkg 2 as 3 4 gcrlf char2 default chr13chr10; 5 gmailconn ; 6 gmailhost varchar2255: ; 7 Next we have an interior unpublished function to transmit an email to numerous recipients? it in essence addresses the email. At a similar time, it builds the?To:? or?Cc:? lines that people?ll eventually send as part in the email itself and returns that formatted string. It was implemented like a separate function since we want to make this happen separately for that To, CC, and BCC lists: 8 function addressemail pstring in varchar2, 9 precipients in array return varchar2 10 is 11 lrecipients long; 12 begin 13 for i in 1. 14 loop 15 gmailconn, precipientsi ; 16 if lrecipients is null 17 then 18 lrecipients: pstring precipientsi ; 19 else 20 lrecipients: lrecipients, precipientsi; 21 end if; 22 end loop; 23 return lrecipients; 24 end; 25 26 Now we've got the implementation in our published function? usually the one people will actually call to send out mail. It starts with an interior procedure writeData that may be used to simplify the sending with the email headers the To:, From:, Subject: records. If the header record is NOT NULL, this routine makes use of the appropriate UTLSMTP call to send out it? along while using necessary end of line marker the carriage return/line feed: 27 procedure send psenderemail in varchar2, 28 pfrom in varchar2 default NULL, 29 pto in array default array, 30 pcc in array default array, 31 pbcc in array default array, 32 psubject in varchar2 default NULL, 33 pbody in long default NULL 34 is 35 ltolist long; 36 lcclist long; 37 lbcclist long; 38 ldate varchar2255 default 39 tochar SYSDATE, dd Mon yy hh24:mi:ss ; 40 41 procedure writeData ptext in varchar2 42 as 43 begin 44 if ptext isn't null 45 then 46 data gmailconn, ptext gcrlf ; 47 end if; 48 end; Now we have been ready to really send the mai. This part isn't very different through the very simple routine we started with. It begins in precisely the same fashion? by connecting on the SMTP server and starting a session: 49 begin 50 gmailconn: connectiongmailhost, 25; 51 52 gmailconn, gmailhost; 53 gmailconn, psenderemail; 54 Here is where it differs, rather than calling once? it uses are addressemail function to think of it as potentially more often than not, building the?To:? and?Cc:? list for many people as well. It builds the BCC list but we won?t actually send that people don?t want the recipients to discover that list! 55 ltolist: addressemail To:, pto ; 56 lcclist: addressemail Cc:, pcc ; 57 lbcclist: addressemail Bcc:, pbcc ; 58 Now, we makes use of the OPENDATA call to begin with sending the body on the email. The code on lines 61 through 68 generates the header a part of data. Line 69 sends the body with the email the contents with the email and line 70 terminates the email for people. 59 datagmailconn ; 60 61 writeData Date: ldate ; 62 writeData From: nvl pfrom, psenderemail ; 63 writeData Subject: nvl psubject, no subject ; 64 65 writeData ltolist ; 66 writeData lcclist ; 67 68 data gmailconn, gcrlf ; 69 datagmailconn, pbody ; 70 datagmailconn ; 71 gmailconn; 72 end; 73 74 75 end; 76Package body created. And that?s it, now since I have some of email addresses, , , I can test this API such as this: tkyteTKYTE816 begin 2 3 psenderemail , 4 pfrom Oracle Database Account, 5 pto , , 6 pcc , 7 pbcc , 8 psubject This is really a subject, 9 pbody Hello Tom, this can be a mail you will need ; 10 end; 11PL/SQL procedure successfully completed. And that call is the thing that generated the ASCII text: Date: 13 May 01 12:33:22 From: Oracle Database Account Subject: This is often a subject To:, Cc: Hello Tom, here is the mail you may need We saw above? that is certainly what got shipped to all of those recipients? including, although we can't see that recipient because it was bcc?ed. That covers most on the typical uses on the UTLSMTP supplied package. Above I did say it can be capable of sending email with attachments and the like but that will require an inordinate number of effort on our part. We would need to: o Learn tips on how to format a multi-part mime encoded document, no small feat o Base-64 encode binary data or use some equivalent encoding technique for instance uuencoding, binhex, and the like That could well be conservatively several hundred, or even thousands of lines of PL/SQL code. Rather then accomplish that, I will declare that you make use of the already written and incredibly robust JavaMail API as described below. Loading and while using JavaMail API In order to makes use of the UTLSMTP package, you need to already use a Java enabled database in Oracle8i. This is because UTLSMTP relies upon UTLTCP and UTLTCP in return is built on Java functions. Remember, should you dont have a very Java enabled database you can utilize UTLHTTP as described above for you simple emails. So, in the event you are in a position to use UTLSMTP, you should have a Java enabled database, you can go to your Sun website and download their JavaMail API. This will give to us the ability to transmit much more complicated emails on the database; including attachments. The following is dependant on work performed by way of a coworker of mine, Mark Piermarini who helps me out with a lot of my Java issues. If you go to youll be capable to download their JavaMail API. The download you obtain will consist of a few hundred files; only 1 of which we are considering. After you download the JavaMail API? be sure also to have their the JavaBeansTM Activation Framework extension or JAF. This is needed to perform the JavaMail API package. After you have downloaded the two of these sets of files? you will must extract in the JavaMail APIdownload and from your JAF download. This is all you could will need because of this? twenty-four hours a day read through the documentation, there is usually a lot of functionality in there we're also not using, were just while using send a contact part in the API. The API includes functions for receiving mail also from IMAP, POP, along with other sources. We will ought to load the and into your database using loadjava but before we could do that any of us must repackage them. These jar files are compressed within a format that may be not understood from the database byte code interpreter. You should unjar and rejar them without compression or work with a tool for instance WinZip to rejar them in a zip file. What I did on Windows 2000 was: 1. Used WinZip to extract the items in into my c:tempmail directory 2. Used WinZip to generate a new archive 3. Put the items in c:tempmail. including subdirectories into this new archive I did the same principle for? only replacing mail with activation from the above steps. Now we're ready to load these zip or jar files, whatever you decide to named them to the database. These have to be loaded with all the SYS user simply because they have protected Java packages that regular users cannot upload. We makes use of the commands: loadjava - u sys/manager - o - r - v - f - noverify - synonym - g public loadjava - u sys/manager - o - r - v - f - noverify - synonym - g public Where: o - u sys/manager: will be the userid and password for the SYS account. As stated previously, some with the packages are protected and must be loaded as SYS o - o: is shorthand for?oci8, I am while using the oci8 driver. You could utilize the thin driver too but youll should modify the command to accomplish this o - r: is short for?resolve. This will resolve all external references from the loaded classes helping verify the loaded java classes will be capable of function if we load them o - v: is short for?verbose. This gives us something to complete while loadjava is running. We can visualize it work through each step of the process. o - f: is short for?force. This isnt necessary about the first load but is OK to utilize. If you try a loadjava colliding with an error, you'll be able to correct it, and reload? then you'd probably either should use the dropjava command to lower the jar file in the database or use?force. Using?force just makes it easier for individuals. o - noverify: isn't going to attempt to verify the bytecode. You must be granted Verifier to carry out this option. In addition, this program must be used together with - r. SYS has this privilege. This is needed as the bytecode verifier will flag some issues using the file and this also works around that issue. o - synonym: creates public synonyms because of these classes. Since precise install the mail java code we write as SYS, this will give us to view the SYS loaded java classes. o - g public: grants execute on these loaded classes to PUBLIC. If this is just not desirable, affect the?g to be only the user you would like to create the send mail routines in, by way of example - g UTILITYACCT. You can find out more details on loadjava plus the above options from the Oracle8I Java Developers Guide. After these packages are loaded, were ready to develop a Java stored procedure to really send the mail. This procedure will act as being a thin layer on top with the JavaMail API and may let us ultimately write a PL/SQL binding layer together with the following spec: tkyteTKYTE816 desc send FUNCTION send RETURNS NUMBER Argument Name Type In/Out Default? - -------- - ------ - -- - -- PFROM VARCHAR2 IN PTO VARCHAR2 IN PCC VARCHAR2 IN PBCC VARCHAR2 IN PSUBJECT VARCHAR2 IN PBODY VARCHAR2 IN PSMTPHOST VARCHAR2 IN PATTACHMENTDATA BLOB IN PATTACHMENTTYPE VARCHAR2 IN PATTACHMENTFILENAME VARCHAR2 IN This function will give to us the power to use CCs and BCCs and send an attachment. It is left just as one exercise for that reader to implement passing arrays of BLOBs or overloading this to back up CLOB or BFILE types for attachments likewise. The Java stored procedure we'll create follows. It uses the standard functionality with the JavaMail API class and is pretty straightforward. Again, we're also not going into every one of the uses with the JavaMail API that may be a book by itself, precisely the basics here. The?mail? class below incorporates a single method?send?. This may be the method we are going to use for you a message. As it's implemented, it returns the very if it can be successful in sending the meial and also a 0 otherwise. This implementation is incredibly basic? it could be considerably more sophisticated, providing support for most attachment types CLOBS, BFILES, LONGS and the like. It could be modified to report back on the caller the precise error received from SMTP like?invalid recipient, no transport, and many others. tkyteTKYTE816 create or replace and compile 2 java source named mail 3 as 4 import ; 5 import ; 6 import ; 7 import ; 8 import ; 9 import ; 10 import ; 11 import ; 12 import ; 13 14 public class mail 15 16 static String dftMime application/octet-stream; 17 static String dftName ; 18 19 public static 20 sendString from, 21 String to, 22 String cc, 23 String bcc, 24 String subject, 25 String body, 26 String SMTPHost, 27 attachmentData, 28 String attachmentType, 29 String attachmentFileName The above argument list matches up with all the SQL call specification we outlined above? the arguments are typically self explanatory. The two that could need some clarification are definitely the attachmentType plus the attachmentFileName. The attachmentType ought to be a MIME Multi-purpose Internet Mail Extensions type? perhaps you might be familiar with from HTML documents. The MIME form of a GIF image as an example is?image/gif?, the mime style of a plain text document could be?text/plain?, an HTML attachment could well be?text/html? etc. The attachmentFileName on this example is NOT the category of an existing OS file that might be attached but instead the filename with the attachment inside the email itself? exactly what the recipient in this email will dsicover the name with the attachment as. The actual attachment is the that may be sent to the present routine. Now, on the body from the code. We begin by setting the session? on the name in the SMTP host the caller delivered to us? the JavaMail API reads this value when deciding what SMTP server in order to connect to: 30 31 int rc 0; 32 33 try 34 35 Properties props ; 36, SMTPHost; 37 Message msg 38 new props, null; 39 Next, we setup the email headers. This part tells the JavaMail API who the content if from, who for you it to, who to transmit a?carbon copy? cc or?blind carbon copy? bcc, just what the subject in the email is and what date ought to be associated together with the email: 40 new InternetAddressfrom; 41 42 if to! null 0 43, 44 to, false; 45 46 if cc! null 0 47, 48 cc, false; 49 50 if bcc! null 0 51, 52 bcc, false; 53 54 if subject! null 0 55 subject; 56 else no subject; 57 58 new Date; 59 Next, we use one of two methods to transmit an email. If the attachmentData argument is just not null, then we'll MIME encode the email? a normal that sports ths sending of attachments and also other multi-part documents. We accomplish this by creating multiple MIME parts of the body? in this particular case a couple of them, one to the body with the email the text along with the other to the attachment itself. Lines 76 through 78 take some additional explanation. They are how you can send an e-mail via a BLOB. The JavaMail API doesn?t see the type natively it's after all a normal API. In order to send out the BLOB attachment, we should provide a method with the JavaMail API to get in the BLOB data. We accomplish this by creating each of our DataHandler? a class with the interface which the JavaMail API understands the way to call in order for getting data to populate the attachment. This class BLOBDataHandler is implemented by us as being a nested class below. 60 if attachmentData! null 61 62 MimeBodyPart mbp1 new MimeBodyPart; 63 body! null? body: ; 64 ; 65 66 MimeBodyPart mbp2 new MimeBodyPart; 67 String type 68 attachmentType! null? attachmentType: dftMime; 69 70 String fileName attachmentFileName! null? 71 attachmentFileName: dftName; 72 73 ; 74 fileName; 75 76 new 77 DataHandlernew BLOBDataSourceattachmentData, type 78 ; 79 80 MimeMultipart mp new MimeMultipart; 81 mbp1; 82 mbp2; 83 mp; 84 If the email isn't going to have an attachment? setting the body with the email is accomplished very simply through single call to setText: 85 else 86 87 body! null? body: ; 88 89 msg; 90 rc 1; 91 catch Exception e 92 93 ; 94 rc 0; 95 finally 96 97 return new rc; 98 99 100 Now for our nested class BLOBDataSource. It simply provides a normal interface to the JavaMail API to reach our type. It can be quite straightforward in their implementation: 101//Nested class that implements a DataSource. 102 static class BLOBDataSource implements DataSource 103 104 private BLOB data; 105 private String type; 106 107 BLOBDataSourceBLOB data, String type 108 109 type; 110 data; 111 112 113 public InputStream getInputStream throws IOException 114 115 try 116 117 ifdata null 118 throw new IOExceptionNo data.; 119 120 return ; 121 catchSQLException e 122 123 throw new 124 IOExceptionCannot get binary input stream from BLOB.; 125 126 127 128 public OutputStream getOutputStream throws IOException 129 130 throw new IOExceptionCannot accomplish this.; 131 132 133 public String getContentType 134 135 return type; 136 137 138 public String getName 139 140 return BLOBDataSource; 141 142 143 144Java created. Now that people have the Java class devised for PL/SQL to bind to, we require to create that binding routine to map the PL/SQL types on their Java Types also to bind the PL/SQL routine to the Java class. That is simply: tkyteTKYTE816 create or replace function send 2 pfrom in varchar2, 3 pto in varchar2, 4 pcc in varchar2, 5 pbcc in varchar2, 6 psubject in varchar2, 7 pbody in varchar2, 8 psmtphost in varchar2, 9 pattachmentdata in blob, 10 pattachmenttype in varchar2, 11 pattachmentfilename in varchar2 return number 12 as 13 language java name , 14, 15, 16, 17, 18, 19, 20, 21, 22 23 return ; 24Function created. Now, abdominal muscles last thing we've got to do before employing this is to ensure our user the owner from the above mail class and send stored procedure has sufficient privileges to try and do the routine. Those would be the next: sysTKYTE816 begin 2 permission 3 grantee TKYTE, 4 permissiontype , 5 permissionname, 6 permissionaction read, write 7 ; 8 permission 9 grantee TKYTE, 10 permissiontype , 11 permissionname, 12 permissionaction connect, resolve 13 ; 14 end; 15PL/SQL procedure successfully completed. Note that within the grant on, I used a wildcard inside permissionname. This allows TKYTE for connecting to and resolve ANY host. Technically, we will put in there exactly the name in the SMTP sever we are using. That can be the minimal grant we needed. This is needed so that you can resolve the hostname of our own SMTP host and connect to it. The other permission, , is needed so as to set the in your sessions properties. Now we're also ready to test. I reused some code on the DBMSLOB section where there were a routine loadafile. I modified that and also the DEMO table to get a BLOB column rather than a CLOB and loaded the file we loaded in like a class into this demo table. Now I can use these PL/SQL block to deliver it to myself being an attachment within an email from your database: tkyteTKYTE816 set serveroutput on size 1000000 tkyteTKYTE816 exec output 1000000 tkyteTKYTE816 declare 2 retcode number; 3 begin 4 for i in select theBlob from demo 5 loop 6 retcode: send 7 pfrom , 8 pto , 9 pcc NULL, 10 pbcc NULL, 11 psubject Use the attached Zip file, 12 pbody to deliver email with, 13 psmtphost , 14 pattachmentdata , 15 pattachmenttype application/winzip, 16 pattachmentfilename ; 17 if retcode 1 then 18 line Successfully sent ; 19 else 20 line Failed for you ; 21 end if; 22 end loop; 23 end; 24Successfully sent PL/SQL procedure successfully completed. You definitely would like to set serverouput on and call the OUTPUT routine on when testing this. This is as the exception is now being printed from the Java stored procedure to by default that may go in a trace file within the server. If you want to discover any errors within your SQLPlus session, you How do you send the mails thru oracle 7.1 database as ourt dataBase just isn't Oracle 8. can u plz send me ur exactly the same solution help Oracle 7.1??? Reviewer: Bijay R. Tuladhar from Hayward, CA This is one in the most useful solutions. Thank you Tom for helping everyone! Excelent, but sending mails has become discussed, what about receiving mails. Reviewer: Shawn from Toronto, ON, Canada I aimed to un-jar them and re-jar the files. when using the loadjava I am getting a exception. Any suggestions? Or could you send me the re-jared files and figure out where to have them. Thanks, The error message is: loadjava - u user/paswddb - o - r - f - v initialization complete loading: mail creating: mail resolver: resolving: mail errors: mail ORA-29535: source requires recompilation mail:31: Class Message not found. mail:31: Class MimeMessage not found. mail:37: Variable msg may possibly not have been initialized. mail:39: Variable msg might possibly not have been initialized. mail:41: Variable msg might not have been initialized. mail:44: Undefined variable or class name: Transport Info: 6 errors loadjava: 8 errors Can anyone help me out? Thanks beforehand. Reviewer: Rajesh Jaswal from Hoshiarpur, Punjab

2015 oracle 8i download for windows 7 32 bit

Thank you for your trust!