Email using delimited string
Hi all,
Im having trouble when i try to e-mail muliple people using HTML DB.When i enter one email address in the :P25_OWNER field,the email works fine,but when i enter more than one address,no email is send to either.Currently my code looks like this-
for c1 in (select owner
from project
where ID_NUMBER = (select max(ID_NUMBER) from project)) loop
if c1.owner is not null then
HTMLDB_MAIL.SEND(
P_TO => :P25_OWNER,
P_FROM => :P25_OWNER,
P_BODY => 'The Project '||:P25_PROJECT_NAME||' has been created '||chr(10)||
P_SUBJ => 'Project '||:P25_PROJECT_NAME||' has been created');
end if;
end loop;
i also tried returning a string so that i could email the entire string but got the same problem with this-
DECLARE
l_string VARCHAR2(255);
l_vc_arr2 HTMLDB_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
l_vc_arr2 := HTMLDB_UTIL.STRING_TO_TABLE(:P25_OWNER);
l_string := HTMLDB_UTIL.TABLE_TO_STRING(l_vc_arr2);
HTMLDB_MAIL.SEND(
P_TO => l_string,
P_FROM => l_string,
P_BODY => 'The Project '||:P25_PROJECT_NAME||' has been created '||chr(10)||
P_SUBJ => 'Project '||:P25_PROJECT_NAME||' has been created');
END;
but i had the same problems with this.
What i want is to have a user enter more than one email address into the text field :P25_OWNER and be able to send an email to each address.Can anyone help with a solution to this problem?
Thanks,
Brian.
Hello Brian,
i've had a similar problem:
P_TO:= '[email protected];[email protected]'
failed. If i use a ',' instead of ';' as delimiter it works fine. So try it like this:
P_TO:= '[email protected],[email protected]'
btw, if you use HTMLDB_UTIL.TABLE_TO_STRING you'll get something like this:
P_TO:= '[email protected]:[email protected]'
hope it helps
Thomas
Similar Messages
-
How to split a delimited string into an array...
I have a delimited string coming in to a stored procedure (SP) for vb.net that needs to be parsed/converted into multi-dimensional arrays. The reason I am using delimited string because I do not know how to pass arrays to oracle SP from vb.net using ODP or MPO (Microsoft's Provider for Oracle).
My delimited string looks something like this: "level1_1|level2_1:level3_1;level3_2|level2_2:level3_1;level3_2~Level1_2|level2_2:level3_1"
So, its going to be 3d array. I would greatly appreciate if anyone could help me solving this puzzle. Any examples would be a great help.
Thanks for everything in advance,
VincentHi Andrew,
I appreciate your response. Currently I use "Microsoft provider for Oracle" to connect to Oracle Database because when I started with my application there wasn't ODP (Oracle Data Provider for .Net) available. So, I used Microsoft provider and still using it.
I know how to use arrays in .Net but the problem is I can not find the Oracle Type to pass the array to Oralce Stored Procedure using this provider.
It would be very helpful if someone shows me the syntax for both to receive from oracle and transport to Oracle. I haven't tried using ODP yet. May be now its the time to see how it works.
And of course, your link was very helpful but I am already doing that (which is very slow for multi-dimentional array). So, I thought there might be a built in function in oracle which does that. Because most of the programming languages does have built in function for this conversion. for example: Split() in vb, java, javascript etc.
Anyway, if anyone finds any clues as to how to pass milti-dimentional arrays from .Net (microsoft) to oracle stored procedure please, please let me know how to do that.
-Vincent -
How to Identify the count , If multiple parameters are passed using Pipe Delimited string
Hi,
We are passing Pipe delimited string to the parameter and I want to know how many values we are passing to the parameter.
Here is the example
Parameter.Grant: 24|34|54|67
I am using below expression, but it is not giving the right values. Please let me know if I am missing anything or is it possible.
=iif(parameters!Grant.Count>1,"Multiple value selected",parameters!Grant.Value)Hi NaveenCR,
According to your description, you used pipe delimited multi-value parameter in the report, you want to know how many values passed to the parameter. If that is the case, please refer to the following steps:
In Design view, click Text Box in the Toolbox.
On the design surface, click and then drag a box to the desired size of the text box.
Right-click inside of the text box, then click Expression.
In Expression text box, type the expression like below:
=iif(split(Parameters! Grant.Value,"|").Length>1," Multiple value selected",Parameters!Grant.Value)
The following screenshots are for your reference:
If you have any more questions, please feel free to ask.
Thanks,
Wendy Fu
If you have any feedback on our support, please click
here.
Wendy Fu
TechNet Community Support -
Using a comma-delimited string in Dynamic SQL
Hi --
If I receive a comma-delimited string as an in parameter, can I simply use that (in string format) when building my dynamic sql?
Thanks,
ChristineThe problem is, that you can not use bind variables
here, only literals. This causes
eventual performance problems.And to avoid the inevitable database performance problems Dmytro mentions you can use a function to convert the string to a varray and select from that. This also avoids having to use dynamic sql.
First you create a varray and conversion function.
SQL> create or replace type tabstr_t as table of varchar2(255)
2 /
Type created.
SQL> create or replace function tabstr (
2 p_str in varchar2,
3 p_sep in varchar2 default ','
4 )
5 return tabstr_t
6 as
7 l_str long default p_str || p_sep;
8 l_tabstr tabstr_t := tabstr_t();
9 begin
10 while l_str is not null loop
11 l_tabstr.extend(1);
12 l_tabstr(l_tabstr.count) := rtrim(substr(
13 l_str,1,instr(l_str,p_sep)),p_sep);
14 l_str := substr(l_str,instr(l_str,p_sep)+1);
15 end loop;
16 return l_tabstr;
17 end;
18 /
Function created.Then you can use these in either regular sql.
SQL> var s varchar2(100)
SQL> exec :s := 'Smith,Scott,Miller'
PL/SQL procedure successfully completed.
SQL>
SQL> select * from emp where ename in
2 (select upper(column_value) from table(tabstr(:s)));
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-DEC-80 800 20
7788 SCOTT ANALYST 7566 09-DEC-82 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10Or in pl/sql.
SQL> var c refcursor
SQL> begin
2 open :c for
3 select * from emp where ename in
4 (select upper(column_value) from table(tabstr(:s)));
5 end;
6 /
PL/SQL procedure successfully completed.
SQL> print c
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 17-DEC-80 800 20
7788 SCOTT ANALYST 7566 09-DEC-82 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10 -
How to use create-nodeset-from-delimited-string()
Hi All,
I am getting the input data as following
name rollno sub
Anu 1 Maths|science|social
and the output should be as follows:
name rollno sub
Anu 1 Maths
Anu 1 Science
Anu 1 Social
I need to implememt this by using oraext:create-nodeset-from-delimited-string() in XSLT Pls help me out in resolving this issue
Regards,
Anasuyacan u elaborate the query with ur input xml and output xml for clear understanding instead of
name rollno sub
Anu 1 Maths|science|social
and the output should be as follows:
name rollno sub
Anu 1 Maths
Anu 1 Science
Anu 1 Social
check the following links it might help u
http://www.soabyte.com/2011/01/delimited-string-to-xml-nodeset.html
Edited by: olety on Nov 2, 2011 2:29 AM -
Error in create-nodeset-from-delimited-string
Hi Gurus,
I am trying to use the orcl:create-nodeset-from-delimited-string XPath extension function in the XSL mapper.
I am using the Map test feature to test my map, and notice that if I use this function, the XSL does not give any output - i guess the map is failing to execute at runtime. When I open the JDeveloper as jdev.exe [so that I can see the command line window for JDev], I can see that an error appears in the command line window that states "Method orcl:create-nodeset-from-delimited-string" not found.
This XPath function is available for use in the "Advanced Functions" palette in the XSL Mapper.
Please let me know if
a) This function can be used within the Mapper, and if so,
b) whats the right way to use it.
My usage looks like
orcl:create-nodeset-from-delimited-string('tns:sampeNode',$delimVar,',')
where delimVar is a comma delimited string.
Please let me know your thoughts on this .
rgds,
RamHello..
Look, I paste a functional piece of code that I develop in a transformation.
Take this for your example and develop with the same structure.
BR...Rodrigo
<xsl:param name="HomeNumber"
select="/tns:GetCustomerResponse/tns:GetCustomerResult/tns:DefaultAddress/tns:HomePhone"/>
<xsl:param name="HomeNumberExt"
select="/tns:GetCustomerResponse/tns:GetCustomerResult/tns:DefaultAddress/tns:HomePhoneExt"/>
<xsl:param name="WorkNumber"
select="/tns:GetCustomerResponse/tns:GetCustomerResult/tns:DefaultAddress/tns:WorkPhone"/>
<xsl:param name="WorkNumberExt"
select="/tns:GetCustomerResponse/tns:GetCustomerResult/tns:DefaultAddress/tns:WorkPhoneExt"/>
<xsl:param name="Fax1"
select="/tns:GetCustomerResponse/tns:GetCustomerResult/tns:DefaultAddress/tns:Fax1"/>
<xsl:param name="Fax2"
select="/tns:GetCustomerResponse/tns:GetCustomerResult/tns:DefaultAddress/tns:Fax2"/>
<xsl:param name="Email"
select="/tns:GetCustomerResponse/tns:GetCustomerResult/tns:DefaultAddress/tns:Email"/>
<xsl:param name="contactMedium"
select="concat($HomeNumber,'-%',$HomeNumberExt,'-%',$WorkNumber,'-%',$WorkNumberExt,'-%',$Fax1,'-%',$Fax2,'-%',$Email,'-')"/>
<xsl:param name="contactMediumNodeSet"
select="oraext:create-nodeset-from-delimited-string('contactMediumNodeSet',$contactMedium,'%')"/> -
I am using the following code to send an email from my java servlet but the problem is, when it is on its own it works fine but as soon as I combine it with some code to submit data into a postgres database it sometimes does not perform could it be because im missing some close statements??
//grades to submit grades starts here
String [] paramValues = req.getParameterValues("Mark");
for(int i=0; i<paramValues.length;i++)
String [] paramValues2 = req.getParameterValues("StudentExamNumber");
String Mark = paramValues;
String ExamNo = paramValues2[i];
//testing purposes
out.println("<tr><td>"+ExamNo+"</td>");
out.println("<td>"+Mark+"</td>");
try
st = conn.createStatement();
query = "SELECT StudentNo FROM STUDENTS"+WebCourse2+ " where ExamNo='"+ExamNo+"'";
rs = st.executeQuery(query);
if(rs !=null)
while(rs.next())
String StudentNo=rs.getString("StudentNo");
//testing purposes
//out.println("<td>"+StudentNo+"</td></tr>");
here
st4 = conn.createStatement();
query4 = "select MAX(entryno) from STUDENTRESULTSFORCOURSE"+WebCourse2+" WHERE STUDENTNO='"+StudentNo+"'";
rs4 = st4.executeQuery(query4);
if(rs4 !=null)
while(rs4.next())
EntryNo = rs4.getInt(1);
}//end rs4 while
rs4.close();
}//end rs4 if
out.println("<tr><td>EntryNo= "+EntryNo+"</td>");
EntryNo = EntryNo + 1;
out.println("<td>NewEntryNo= "+EntryNo+"</td></tr>");
//Submitting grades to database/
st3 = conn.createStatement();
insert = "insert into STUDENTRESULTSFORCOURSE"+WebCourse2+" (StudentNo, CourseCode, AttemptNo, ExamMark, EntryNo, EnteredBy) values ('"+StudentNo+"', '"+WebCourse2+"', 1,'"+Mark+"',"+EntryNo+",'"+WebUsername2+"')";
st3.executeUpdate(insert);
}//end rs while
rs.close();
}//end rs if
}//end try
catch (SQLException e)
System.out.println("Error: "+e.getMessage());
}//end for loop
//code to submit grades ends here
//code used to send email starts here
String m_sHostName="localhost";
int m_iPort=25;
try
// Open port to server
smtpSocket = new Socket(m_sHostName, m_iPort);
os = new DataOutputStream(smtpSocket.getOutputStream());
is = new DataInputStream(smtpSocket.getInputStream());
if(smtpSocket != null && os != null && is != null)
// Connection was made. Socket is ready for use.
System.out.println("Connection was made. Socket is ready for use.");
try
// The email address that the server
// you are using know user as.
os.writeBytes("MAIL From: <[email protected]>\r\n");
// Who the email is going to.
os.writeBytes("RCPT To: <[email protected]>\r\n");
//send a CC to:
os.writeBytes("RCPT Cc: <[email protected]>\r\n");
// add the message and the
// header of the email to be sent out.
os.writeBytes("DATA\r\n");
os.writeBytes("X-Mailer: Via Java\r\n");
os.writeBytes("From: "+WebUsername2+"<[email protected]>\r\n");
os.writeBytes("To: Marie <[email protected]>\r\n");
//Again if you want to send a CC then add this.
os.writeBytes("Cc: ProfCuthbert <[email protected]>\r\n");
String sMessage = "ELECTRONIC ENGINEERING EXAM COLLATION SYSTEM EMAIL\n\nThe results for the following course have been submitted by the following member of staff\n\nCOURSE: "+WebCourse2+"\n\nSUBMITTED BY: "+WebUsername2+" \n\nPLEASE LOCK COURSE NOW IN ORDER TO PREVENT ANY FURTHER SUBMISSIONS TO BE MADE BY USERS.";
os.writeBytes("Subject: A SUBMISSION HAS BEEN MADE FOR COURSE "+WebCourse2+"\r\n");
os.writeBytes(sMessage + "\r\n");
os.writeBytes("\r\n.\r\n");
os.writeBytes("QUIT\r\n");
// Now send the email off and check the server reply.
// Once an OK is reached you are complete.
String responseline;
//for testing purposes
//out.println(responseline = is.readLine());
while((responseline = is.readLine())!=null)
//for testing purposes
//out.println("responseline= "+responseline+"<br>");
//out.println("responseline.indexOf(Ok)= "+responseline.indexOf("Ok"));
if(responseline.indexOf("Ok") != -1)
break;
if(responseline.indexOf("Ok") == -1)
confirm=1;
if (confirm==1)
out.println("<br>the marks have been submitted thank you");
catch(Exception e)
{ System.out.println("Cannot send email as an error occurred.");
out.println("Cannot send email as an error occurred.");
catch(Exception e)
{ System.out.println("Host " + m_sHostName + "unknown"); }
Does anyone know what the problem is??
thanks
tzafi close them later in the program. Ive made sure they are all closed I have a feeling that it could be coming from here....
//code used to send email starts here
String m_sHostName="localhost";
int m_iPort=25;
try
// Open port to server
smtpSocket = new Socket(m_sHostName, m_iPort);
os = new DataOutputStream(smtpSocket.getOutputStream());
is = new DataInputStream(smtpSocket.getInputStream());
if(smtpSocket != null && os != null && is != null)
// Connection was made. Socket is ready for use.
System.out.println("Connection was made. Socket is ready for use.");
try
// The email address that the server
// you are using know user as.
os.writeBytes("MAIL From: <email address>\r\n");
// Who the email is going to.
os.writeBytes("RCPT To: <email address>\r\n");
//send a CC to:
os.writeBytes("RCPT Cc: <email address>\r\n");
// add the message and the
// header of the email to be sent out.
os.writeBytes("DATA\r\n");
os.writeBytes("X-Mailer: Via Java\r\n");
os.writeBytes("From: "+WebUsername2+"<email address>\r\n");
os.writeBytes("To: hello<email address>\r\n");
//Again if you want to send a CC then add this.
os.writeBytes("Cc: hello <email address>\r\n");
String sMessage = "ELECTRONIC ENGINEERING EXAM COLLATION SYSTEM EMAIL\n\nThe results for the following course have been submitted by the following member of staff\n\nCOURSE: "+WebCourse2+"\n\nSUBMITTED BY: "+WebUsername2+" \n\nPLEASE LOCK COURSE NOW IN ORDER TO PREVENT ANY FURTHER SUBMISSIONS TO BE MADE BY USERS.";
os.writeBytes("Subject: A SUBMISSION HAS BEEN MADE FOR COURSE "+WebCourse2+"\r\n");
os.writeBytes(sMessage + "\r\n");
os.writeBytes("\r\n.\r\n");
os.writeBytes("QUIT\r\n");
// Now send the email off and check the server reply.
// Once an OK is reached you are complete.
String responseline;
//for testing purposes
//out.println(responseline = is.readLine());
while((responseline = is.readLine())!=null)
//for testing purposes
//out.println("responseline= "+responseline+"<br>");
//out.println("responseline.indexOf(Ok)= "+responseline.indexOf("Ok"));
if(responseline.indexOf("Ok") != -1)
break;
if(responseline.indexOf("Ok") == -1)
confirm=1;
if (confirm==1)
out.println("<br>the marks have been submitted thank you");
catch(Exception e)
{ System.out.println("Cannot send email as an error occurred.");
out.println("Cannot send email as an error occurred.");
catch(Exception e)
{ System.out.println("Host " + m_sHostName + "unknown"); }
//code used to send email ends here
do i need to close is and os?
thanks
tzaf -
Im using this code to do this, but i have a feeling that I need to close os and is is that the case? do i need to close anything else?
thanks
tzaf
//code used to send email starts here
String m_sHostName="localhost";
int m_iPort=25;
try
// Open port to server
smtpSocket = new Socket(m_sHostName, m_iPort);
os = new DataOutputStream(smtpSocket.getOutputStream());
is = new DataInputStream(smtpSocket.getInputStream());
if(smtpSocket != null && os != null && is != null)
// Connection was made. Socket is ready for use.
System.out.println("Connection was made. Socket is ready for use.");
try
// The email address that the server
// you are using know user as.
os.writeBytes("MAIL From: <[email protected]>\r\n");
// Who the email is going to.
os.writeBytes("RCPT To: <[email protected]>\r\n");
//send a CC to:
os.writeBytes("RCPT Cc: <[email protected]>\r\n");
// add the message and the
// header of the email to be sent out.
os.writeBytes("DATA\r\n");
os.writeBytes("X-Mailer: Via Java\r\n");
os.writeBytes("From: "+WebUsername2+"<[email protected]>\r\n");
os.writeBytes("To: Marie <[email protected]>\r\n");
//Again if you want to send a CC then add this.
os.writeBytes("Cc: ProfCuthbert <[email protected]>\r\n");
String sMessage = "ELECTRONIC ENGINEERING EXAM COLLATION SYSTEM EMAIL\n\nThe results for the following course have been submitted by the following member of staff\n\nCOURSE: "+WebCourse2+"\n\nSUBMITTED BY: "+WebUsername2+" \n\nPLEASE LOCK COURSE NOW IN ORDER TO PREVENT ANY FURTHER SUBMISSIONS TO BE MADE BY USERS.";
os.writeBytes("Subject: A SUBMISSION HAS BEEN MADE FOR COURSE "+WebCourse2+"\r\n");
os.writeBytes(sMessage + "\r\n");
os.writeBytes("\r\n.\r\n");
os.writeBytes("QUIT\r\n");
// Now send the email off and check the server reply.
// Once an OK is reached you are complete.
String responseline;
//for testing purposes
//out.println(responseline = is.readLine());
while((responseline = is.readLine())!=null)
//for testing purposes
//out.println("responseline= "+responseline+"<br>");
//out.println("responseline.indexOf(Ok)= "+responseline.indexOf("Ok"));
if(responseline.indexOf("Ok") != -1)
break;
if(responseline.indexOf("Ok") == -1)
confirm=1;
if (confirm==1)
out.println("<br>the marks have been submitted thank you");
catch(Exception e)
{ System.out.println("Cannot send email as an error occurred.");
out.println("Cannot send email as an error occurred.");
catch(Exception e)
{ System.out.println("Host " + m_sHostName + "unknown"); }
//code used to send email ends hereany thoughts?
thanks
tzaf -
Sending email using UTL_SMTP
Dear experts,
I am trying to send an email using UTL_SMTP (i switched from UTL_MAIL to UTL_SMTP since i need to send mails with large attachments - BLOB). I am using the demo_mail package given here:
http://www.oracle.com/technology/sample_code/tech/pl_sql/htdocs/Utl_Smtp_Sample.html
While running the program I am getting an error message (from the error.log) saying:
[Mon Aug 04 14:00:21 2008] [error] [client 192.168.0.7] mod_plsql: /ns/email_p.send HTTP-404 ORA-29279: SMTP permanent error: 530 5.7.0 Must issue a STARTTLS command first. 9sm12723808qbw.6\nORA-06512: at "SYS.UTL_SMTP", line 20\nORA-06512: at "SYS.UTL_SMTP", line 98\nORA-06512: at "SYS.UTL_SMTP", line 221\nORA-06512: at "NEXTSTEP.SEND_EMAIL_HELPER", line 258\nORA-06512: at "NEXTSTEP.SEND_EMAIL_HELPER", line 119\nORA-06512: at "NEXTSTEP.EMAIL_P", line 33\nORA-06512: at line 31\n, referer: file:///C:/Documents and Settings/Mayank/My Documents/Flex Builder 3/ns5/bin-debug/main.swf
My code is as follows:
PACKAGE DECLARATION. This is the DEMO_MAIL package posted under above link (I have renamed it).
CREATE OR REPLACE PACKAGE NEXTSTEP.send_email_helper IS
----------------------- Customizable Section -----------------------
-- Customize the SMTP host, port and your domain name below.
smtp_host VARCHAR2(256) := 'smtp.gmail.com';
smtp_port PLS_INTEGER := 587;
smtp_domain VARCHAR2(256) := null;
-- Customize the signature that will appear in the email's MIME header.
-- Useful for versioning.
MAILER_ID CONSTANT VARCHAR2(256) := 'Mailer by Oracle UTL_SMTP';
--------------------- End Customizable Section ---------------------
-- A unique string that demarcates boundaries of parts in a multi-part email
-- The string should not appear inside the body of any part of the email.
-- Customize this if needed or generate this randomly dynamically.
BOUNDARY CONSTANT VARCHAR2(256) := '-----7D81B75CCC90D2974F7A1CBD';
FIRST_BOUNDARY CONSTANT VARCHAR2(256) := '--' || BOUNDARY || utl_tcp.CRLF;
LAST_BOUNDARY CONSTANT VARCHAR2(256) := '--' || BOUNDARY || '--' ||
utl_tcp.CRLF;
-- A MIME type that denotes multi-part email (MIME) messages.
MULTIPART_MIME_TYPE CONSTANT VARCHAR2(256) := 'multipart/mixed; boundary="'||
BOUNDARY || '"';
MAX_BASE64_LINE_WIDTH CONSTANT PLS_INTEGER := 76 / 4 * 3;
-- A simple email API for sending email in plain text in a single call.
-- The format of an email address is one of these:
-- someone@some-domain
-- "Someone at some domain" <someone@some-domain>
-- Someone at some domain <someone@some-domain>
-- The recipients is a list of email addresses separated by
-- either a "," or a ";"
PROCEDURE mail(sender IN VARCHAR2,
recipients IN VARCHAR2,
subject IN VARCHAR2,
message IN VARCHAR2);
-- Extended email API to send email in HTML or plain text with no size limit.
-- First, begin the email by begin_mail(). Then, call write_text() repeatedly
-- to send email in ASCII piece-by-piece. Or, call write_mb_text() to send
-- email in non-ASCII or multi-byte character set. End the email with
-- end_mail().
FUNCTION begin_mail(sender IN VARCHAR2,
recipients IN VARCHAR2,
subject IN VARCHAR2,
mime_type IN VARCHAR2 DEFAULT 'text/plain',
priority IN PLS_INTEGER DEFAULT NULL)
RETURN utl_smtp.connection;
-- Write email body in ASCII
PROCEDURE write_text(conn IN OUT NOCOPY utl_smtp.connection,
message IN VARCHAR2);
-- Write email body in non-ASCII (including multi-byte). The email body
-- will be sent in the database character set.
PROCEDURE write_mb_text(conn IN OUT NOCOPY utl_smtp.connection,
message IN VARCHAR2);
-- Write email body in binary
PROCEDURE write_raw(conn IN OUT NOCOPY utl_smtp.connection,
message IN RAW);
-- APIs to send email with attachments. Attachments are sent by sending
-- emails in "multipart/mixed" MIME format. Specify that MIME format when
-- beginning an email with begin_mail().
-- Send a single text attachment.
PROCEDURE attach_text(conn IN OUT NOCOPY utl_smtp.connection,
data IN VARCHAR2,
mime_type IN VARCHAR2 DEFAULT 'text/plain',
inline IN BOOLEAN DEFAULT TRUE,
filename IN VARCHAR2 DEFAULT NULL,
last IN BOOLEAN DEFAULT FALSE);
-- Send a binary attachment. The attachment will be encoded in Base-64
-- encoding format.
PROCEDURE attach_base64(conn IN OUT NOCOPY utl_smtp.connection,
data IN RAW,
mime_type IN VARCHAR2 DEFAULT 'application/octet',
inline IN BOOLEAN DEFAULT TRUE,
filename IN VARCHAR2 DEFAULT NULL,
last IN BOOLEAN DEFAULT FALSE);
-- Send an attachment with no size limit. First, begin the attachment
-- with begin_attachment(). Then, call write_text repeatedly to send
-- the attachment piece-by-piece. If the attachment is text-based but
-- in non-ASCII or multi-byte character set, use write_mb_text() instead.
-- To send binary attachment, the binary content should first be
-- encoded in Base-64 encoding format using the demo package for 8i,
-- or the native one in 9i. End the attachment with end_attachment.
PROCEDURE begin_attachment(conn IN OUT NOCOPY utl_smtp.connection,
mime_type IN VARCHAR2 DEFAULT 'text/plain',
inline IN BOOLEAN DEFAULT TRUE,
filename IN VARCHAR2 DEFAULT NULL,
transfer_enc IN VARCHAR2 DEFAULT NULL);
-- End the attachment.
PROCEDURE end_attachment(conn IN OUT NOCOPY utl_smtp.connection,
last IN BOOLEAN DEFAULT FALSE);
-- End the email.
PROCEDURE end_mail(conn IN OUT NOCOPY utl_smtp.connection);
-- Extended email API to send multiple emails in a session for better
-- performance. First, begin an email session with begin_session.
-- Then, begin each email with a session by calling begin_mail_in_session
-- instead of begin_mail. End the email with end_mail_in_session instead
-- of end_mail. End the email session by end_session.
FUNCTION begin_session RETURN utl_smtp.connection;
-- Begin an email in a session.
PROCEDURE begin_mail_in_session(conn IN OUT NOCOPY utl_smtp.connection,
sender IN VARCHAR2,
recipients IN VARCHAR2,
subject IN VARCHAR2,
mime_type IN VARCHAR2 DEFAULT 'text/plain',
priority IN PLS_INTEGER DEFAULT NULL);
-- End an email in a session.
PROCEDURE end_mail_in_session(conn IN OUT NOCOPY utl_smtp.connection);
-- End an email session.
PROCEDURE end_session(conn IN OUT NOCOPY utl_smtp.connection);
END;How should I solve the above error? Can anyone help me with my query please?
If I add the code to start TLS it still gives me an error. If I add the code
utl_smtp.command(conn,'STARTTLS');
utl_smtp.helo(conn, smtp_domain);
under email_sender_help package just before under begin_session function, it gives me an error saying:
ORA-29279: SMTP permanent error: 503 5.5.1 EHLO/HELO first. s27sm2097329qbs.12
So then if i enter the same code after:
utl_smtp.command(conn,'STARTTLS');
utl_smtp.helo(conn, smtp_domain);
It gives me an error:
ORA-29278: SMTP transient error: 421 Service not available
Message was edited by:
Monk
Message was edited by:
Monklook like rely turned off on the server..
check this.. or ask your network guys..
Go to Control Panel->Add or Remove Programs->Click on
Add/Remove Wndows Components
Check IIS check box.
Select Internet Information Service (IIS) option and click on Details button
Check whether SMTP Service is checked or not.
If not selected then select SMTP check box.
This process should be done on server.
It will help out from ORA-29278: SMTP transient error: 421 Service not available problem.
thanks -
Does any one have a sample code for sending email using IMAP ?
Hi
thank you for reading my post
I have tried to use SMTP and because of some problems i could not use it and i must use Imap (authentication required)
here is my SMTP code , does any one know how i can tune it to use Imap , or has a code snippet to send email using Imap ?
thanks
private static void postMail(String[] recipients, String subject, String message,
String from) throws MessagingException {
boolean debug = false;
class SMTPAuthenticator extends javax.mail.Authenticator
public PasswordAuthentication getPasswordAuthentication()
return new PasswordAuthentication(mail_usrname,mail_password);
//Set the host smtp address
Properties props = new Properties();
FileInputStream fis;
try {
System.out.println("Loading property file");
fis = new FileInputStream(new File("c:/email.properties"));
props.load(fis);
System.out.println("property file done");
} catch (FileNotFoundException e) {
System.out.println("file not found");
e.printStackTrace();
} catch (IOException e) {
System.out.println("can not read properties file");
e.printStackTrace();
/*props.put("mail.smtp.user", mail_usrname);
props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.port", smtpPort);
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.socketFactory.port", smtpPort);
// create some properties and get the default Session
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug);
// create a message
Message msg = new MimeMessage(session);
// set the from and to address
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++) {
addressTo[i] = new InternetAddress(recipients);
msg.setRecipients(Message.RecipientType.TO, addressTo);
// Setting the Subject and Content Type
msg.setSubject(subject);
msg.setContent(message, "text/HTML");
System.out.println(msg.toString());
Transport.send(msg);Please try this out!!!!!!!!!
You can send emails using Outlook also. You can send email over Microsoft Exchange with this object (or another email server, using IMAP/POP).
Sub SendMailOutlook(aTo, Subject, TextBody, aFrom)
'Create an Outlook object
Dim Outlook 'As New Outlook.Application
Set Outlook = CreateObject("Outlook.Application")
'Create e new message
Dim Message 'As Outlook.MailItem
Set Message = Outlook.CreateItem(olMailItem)
With Message
'You can display the message To debug And see state
'.Display
.Subject = Subject
.Body = TextBody
'Set destination email address
.Recipients.Add (aTo)
'Set sender address If specified.
Const olOriginator = 0
If Len(aFrom) > 0 Then .Recipients.Add(aFrom).Type = olOriginator
'Send the message
.Send
End With
End Sub -
Sending an email Using IChannel
I am developing a portal component which would send an email using the IChannel's sendTo method. The problem is the sendTo method takes the to and from addresses of the receiver and sender in a channel specific format. For which I could use the following code
Does anybody know how I could get these addresses in these specific format.
ThanksHi Mukesh,
I'm not sure I understand you correctly.
The to and from addresses are the email addresses of the sender and the reciever.
These are simple strings, just as you would write them in the "To:" section when you sent an ordinary e-mail.
You can use "annonymous" as the from address if you don't have an address to send from.
Here's an example:
IChannel emailChannel = ChannelFactory.getInstance().getChannel(ChannelFactory.EMAIL);
MimeMessage msg = createMessage();
emailChannel.sendTo("[email protected]","[email protected]",msg);
createMessage() is for you to implement of course.
Hope that helps,
Yoav. -
I would like to translate the User Interface of my application to French, Italian, Spanish, German and Portuguese.
When I put special characters in the import string file they showed up as ? (question mark)
The import strings file includes the following parameters for each string: font, text, size and style. (but no field for script)
In order to use a unicode font such as Arial I need to select a french script. But this option is not supported bu LabView (As far as I saw)
A) Is there a font which is directly German/ French etc and not regula font + script parameter?
B) Are there another required step
s for special characters support? (When I put speciual characters in the import string file the showed up as ? question mark)This was discussed last week in this group- read the previous messages.
Look for the thread "Foreign Languages in Labview"
And recite the mantra
ActiveX is good
ActiveX is holy
All Hail Bill
Those who claim otherwise are heretics and not to be trusted
Actually, in this case the non-ActiveX suggestions may be good.
talia wrote in message
news:[email protected]..
> How can I display special characters of NonEuropean languages (French,
> Italian, Spanish, German and Portuguese.) using import string
> mechanism -
Converting Delimited string to XML message
Hi,
We are trying to convert pipe delimited string into a xml schema using a XSD and BPEL funtion. Consider a scenario in which message has 5 fields with last as 2 optional fields. So the incoming string message can be like "1|2|3" or "1|2|3|4|5". In this case how the XSD should look like, since for each field we have to give "terminatedby" option in the XSD. So the issue is coming for element 3 where the delimiter can be "|" or "eol" (end of line). How to specify that ? Is there any option to use like "optionally terminated by?"
Any help will be appreciated.
Thanks,
Ramesh
Edited by: rameshchandra85 on 2 Aug, 2010 10:00 AMHi Ramesh,
You can use below XSD for input file of kind
1|2|3
1|2|3|4|5
1|2|3|4
1|2|3|4|5|6
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
targetNamespace="http://TargetNamespace.com/InboundService"
xmlns:tns="http://TargetNamespace.com/InboundService"
elementFormDefault="qualified"
attributeFormDefault="unqualified" nxsd:encoding="ASCII" nxsd:stream="chars" nxsd:version="NXSD">
<xsd:element name="Root-Element">
<xsd:complexType>
<xsd:choice minOccurs="1" maxOccurs="unbounded" nxsd:choiceCondition="terminated" nxsd:terminatedBy="|">
<xsd:element name="RECORD1" nxsd:conditionValue="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="C2" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="|" nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C3" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy=""">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RECORD2" nxsd:conditionValue="2">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="C2" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="|" nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C3" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="|" nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C4" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="|" nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C5" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy=""">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RECORD3" nxsd:conditionValue="3">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="C2" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="|" nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C3" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="|" nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C4" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy=""">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="RECORD4" nxsd:conditionValue="4">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="C2" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="|" nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C3" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="|" nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C4" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="|" nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C5" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="|" nxsd:quotedBy=""">
</xsd:element>
<xsd:element name="C6" type="xsd:int" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy=""">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!--NXSDWIZ:D:\DBIN\ReadFile.txt:-->
<!--USE-HEADER:false:-->But in your case if you are getting 5 elements instead of 3 elements in some other file....Use the same and maipulate the last element afterwards.
I think we can not have an element definition for two scenarios.
Update you if i get any..
Regards
PavanKumar.M -
Send text file content as the body of an email using Send-MailMessage
I am taking the last 8 lines of a bunch of robocopy logs and bunching them together.
Get-ChildItem -Filter *.log | ForEach {
$a += Get-Content $_.Name | Select -Last 8
$a += Write-output ' '`r
$a += Write-Output '------------------------------------------------------------------------------'`r
I then wanted to use this as the body of an email (send-mailmessage). It all works but the formatting is lost in the email. I've tried using Out-String and ConvertTo-HTML with little luck.
If I look at $a in the above it looks fine in the PowerShell console it's just lost when it reaches my inbox.
I am using v2 of PowerShell and sadly can't upgrade it.The issue isn't that part. It's the content of the log files that loses its formatting.
$a += Get-Content $_.Name | Select -Last 8 -
Oracle soa 11.1.1.4 html email using email activity
Experts,
In one of my process i am generating tabular form content in email using html tags in transform xsl file and passing this xsl using ora:processXSLT funtion to contentbody variable of email activity. This works fine in *11.1.1.1* i am able to see email with tabular form content but *11.1.1.4* i am getting an email without content.
In 11.1.1.4 if i pass some simple string to the content body then its working fine i am able to see am email with that string and if i pass the transformation which is having html tags int it, its not working . I have no idea
why the html tags are not getting recognizing in 11.1.1.4 email activity.
Can someone please help me to solve this issue.
Note: its working very goodl in 11.1.1.1.
here how i am calling fine in bpel
*<copy>*
*<from expression="ora:processXSLT('xsl/GenerateHTML.xsl',bpws:getVariableData('ResponseOutput','/ns4:Response'))"/>*
*<to variable="varNotificationReq" part="EmailPayload"*
query="/EmailPayload/ns6:Content/ns6:ContentBody"/>
*</copy*
and here is my transformation GenerateHTML.xsl
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:ns0="http://www.oracle.com/mgSOA"
xmlns:xpath20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.mediator.service.common.functions.MediatorExtnFunction"
xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dvm="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue"
xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:med="http://schemas.oracle.com/mediator/xpath"
xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
xmlns:xdk="http://schemas.oracle.com/bpel/extension/xpath/function/xdk"
xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ora="http://schemas.oracle.com/xpath/extension"
xmlns:socket="http://www.oracle.com/XSL/Transform/java/oracle.tip.adapter.socket.ProtocolTranslator"
xmlns:sample="http://www.oracle.com/XSL/Transform/java/oracle.sample.SampleExtensionFunctions"
xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
exclude-result-prefixes="xsi xsl ns0 xsd xpath20 bpws mhdr oraext dvm hwf med ids xdk xref ora socket sample ldap">
<xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<xsl:text disable-output-escaping="yes"><b>s list </b></xsl:text>
<xsl:text disable-output-escaping="yes"><br></xsl:text>
<xsl:text disable-output-escaping="yes"><br></xsl:text>
<table border="1">
<tr bgcolor="#9acd32">
<th width="80">EntityType</th>
<th width="400">Organization name</th>
<th width="100">Country</th>
<th width="200">Code</th>
<th width="200">Date</th>
</tr>
<ns0:Response>
<xsl:for-each select="/ns0:Response/ns0:ResponseData">
<tr>
<ns0:ResponseData>
<td width="80">
<ns0:R_entitytype>
<xsl:attribute name="xsi:nil">
<xsl:value-of select="ns0:R_entitytype/@xsi:nil"/>
</xsl:attribute>
<xsl:value-of select="ns0:R_entitytype"/>
</ns0:R_entitytype>
</td>
<td width="400">
<ns0:R_orgname>
<xsl:attribute name="xsi:nil">
<xsl:value-of select="ns0:R_orgname/@xsi:nil"/>
</xsl:attribute>
<xsl:value-of select="ns0:R_orgname"/>
</ns0:R_orgname>
</td>
<td width="100">
<ns0:R_country>
<xsl:attribute name="xsi:nil">
<xsl:value-of select="ns0:R_country/@xsi:nil"/>
</xsl:attribute>
<xsl:value-of select="ns0:R_country"/>
</ns0:R_country>
</td>
<td width="200">
<ns0:R_Code>
<xsl:attribute name="xsi:nil">
<xsl:value-of select="ns0:R_Code/@xsi:nil"/>
</xsl:attribute>
<xsl:value-of select="ns0:R_Code"/>
</ns0:R_Code>
</td>
<td width="200">
<ns0:R_Date>
<xsl:attribute name="xsi:nil">
<xsl:value-of select="ns0:R_Date/@xsi:nil"/>
</xsl:attribute>
<xsl:value-of select="ns0:R_Date"/>
</ns0:R_Date>
</td>
</ns0:ResponseData>
</tr>
</xsl:for-each>
</ns0:Response>
</table>
<xsl:text disable-output-escaping="yes"><br></xsl:text>
<xsl:text disable-output-escaping="yes"><br></xsl:text>
</xsl:template>
</xsl:stylesheet>Try using ora:toCDATA function, I had the same issue and this seemed to work.
<copy>
<from expression="ora:toCDATA(xdk:processXSLT('xsl/GenerateHTML.xsl',bpws:getVariableData('ResponseOutput','/ns4:Response')))"/>
<to variable="varNotificationReq" part="EmailPayload"
query="/EmailPayload/ns6:Content/ns6:ContentBody"/>
</copy>
Maybe you are looking for
-
According to William Stanek, in his Windows Server 2012 R2 Inside Out: Configuration, Storage & Essentials book, this is apparently possible: (pg. 615 - here it is on Google Books: https://books.google.ca/books?id=0IyfBAAAQBAJ&pg=PT819&lpg=PT819&dq=r
-
Wireless Router can't see other computers on network
I have a home network set up as follows: Cable modem connected to a VOIP modem then it is connected to a 8 port switch. I have 2 computers and a Linksys wireless router connected to the switch. The 2 computers can see each other on the network. Wh
-
Upgrade to ECC6 and Unicode: Passing HTML
We are experiencing new issues related output on our Web page URL. Iu2019d like to convert the internal text table, t_html (now in Unicode-I assume utf-16), to contain the old hex values(I assume utf-8), before the Unicode upgrade. Or, convert the te
-
Purchased iTunes movies won't sync
I purchased a couple of movies and an audio book from iTunes. All my music syncs, but when I try to sync the movies and book my iPod crashes (freezes). I have tried the movies and book individually, but each time my iPod crashes. The only thing that
-
hi friends - any idea is there any bapi to post the invoice idoc using transaction FV60. Thanks Praveen