Getting javax.mail.internet.ParseException when parsing MIME message
Hi All,
The MIME Content Type is as below.
Content-Type: application/pdf;
name="ecm-000669.pdf";
Content-Disposition: attachment;
filename="ecm-000669.pdf";
When executing the following statement
ContentType ct = new ContentType(contentType);
where contentType is application/pdf;
name="ecm-000669.pdf";
Getting the below error
javax.mail.internet.ParseException
at javax.mail.internet.ParameterList.<init>(ParameterList.java:61)
at javax.mail.internet.ContentType.<init>(ContentType.java:83)
at oracle.apps.fnd.wf.common.MIMEUtils.handleContent(MIMEUtils.java:488)
at oracle.apps.fnd.wf.mailer.EmailParser.processSingleContent(EmailParser.java:1851)
at oracle.apps.fnd.wf.mailer.EmailParser.parseBody(EmailParser.java:2166)
at oracle.apps.fnd.wf.mailer.EmailParser.parseEmail(EmailParser.java:1195)
at oracle.apps.fnd.wf.mailer.IMAPResponseHandler.processSingleMessage(IMAPResponseHandler.java:255)
at oracle.apps.fnd.wf.mailer.IMAPResponseHandler.processMessage(IMAPResponseHandler.java:92)
at oracle.apps.fnd.cp.gsc.SvcComponentProcessor.process(SvcComponentProcessor.java:659)
at oracle.apps.fnd.cp.gsc.Processor.run(Processor.java:283)
at java.lang.Thread.run(Thread.java:534)
The error is not happening when I remove the semi colon at the end of content-type header as shown below
Content-Type: application/pdf;
name="ecm-000669.pdf"
Can you please tell that semi colon at the end of Content-Type header is not supported in MIME standard? This MIME is coming from the rediff email client. Is there any parameter in Java Mail API to avoid these kind of issues?
Yes, a trailing semicolon violates the MIME syntax spec.
You can work around this bug in the client by setting the System property "mail.mime.parameters.strict" to "false",
as described here: http://javamail.kenai.com/nonav/javadocs/javax/mail/internet/package-summary.html
Similar Messages
-
Javax.mail.internet.ParseException when trying to send a MIME message
Hi,
I am using JavaMail to send a MIME message, but I am getting the following exception:
at java.lang.Throwable.fillInStackTrace(Native Method)
at java.lang.Throwable.fillInStackTrace(Compiled Code)
at java.lang.Throwable.<init>(Compiled Code)
at java.lang.Exception.<init>(Compiled Code)
at javax.mail.MessagingException.<init>(MessagingException.java:34)
at javax.mail.internet.ParseException.<init>(ParseException.java:27)
at javax.mail.internet.ParameterList.<init>(Compiled Code)
at javax.mail.internet.ContentType.<init>(ContentType.java:82)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1051)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1923)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1904)
at javax.mail.Transport.send(Transport.java:101)
at FPSend.main(Compiled Code)
The problem seems to be the header of the message, specifically the class-id filed of the content-type. This is the content-type header that causes javaMail to throw that exception:
Content-Type: multipart/alternative;
boundary="------------110059296832670";
class-id=11:9sc9bnYwM87box:2680047
I think the ":" character in the class-id is causing the problem. Does anybody know if those characters are valid according to MIME standards? And if they are not valid, is there a work around this problem?
thank you!RFC 2046 doesn't mention the existence of the class-id parameter. But it does say this:Thus, a typical "multipart" Content-Type header field might look like this:
Content-Type: multipart/mixed; boundary=gc0p4Jq0M2Yt08j34c0p
But the following is not valid:
Content-Type: multipart/mixed; boundary=gc0pJq0M:08jU534c0p
(because of the colon) and must instead be represented as
Content-Type: multipart/mixed; boundary="gc0pJq0M:08jU534c0p"From what I see elsewhere, Class-ID is a Microsoft extension. It wouldn't be surprising to find that Microsoft uses extensions that are incompatible with the MIME standards. -
Javax.mail.internet.ParseException
Hi,
I get this exception when I use Transport.send(Mimemsg) method.
javax.mail.internet.ParseException
at javax.mail.internet.ContentType.<init>(ContentType.java:72)
at javax.mail.internet.MimeBodyPart.updateHeaders(MimeBodyPart.java:1016)
at javax.mail.internet.MimeMessage.updateHeaders(MimeMessage.java:1841)
at javax.mail.internet.MimeMessage.saveChanges(MimeMessage.java:1822)
at javax.mail.Transport.send(Transport.java:80)
at com.gm.usbp.ld.common.utils.EmailUtility.sendMail(EmailUtility.java:371)
I get this exception only when an vacation response(auto response) comes from Yahoo.
and the content is shown as com.sun.mail.util.SharedByteArrayInputStream@f7757c.
We are able to parse the mime object (vacation respone from yahoo) and get all the details.then we modify the mime object by setting To address and then again transport the message to SMTP.
Can any one help me please.Am also facing the same issue. Did anyone find a resolution for this problem?
Regards
Anoop -
One of our customers recently reported an incident with the IMAP import functionality of our product. The error (javax.mail.internet.ParseException: Expected ';', got ",") occurs on getting the filename of an attachment. We have traced the cause to headers of the MimePart that are not following the relevant RFC specs. We get the error with both JavaMail 1.4 and 1.4.1.
It fails on headers like:
Content-Disposition: attachment;
creation-date=Tue, 22 Jul 2008 10:03:09 GMT;
filename="test1kb.file";
modification-date=Tue, 22 Jul 2008 10:03:24 GMTThe error does not occur if we do quote the dates in accordance to the RFC2183(?), like this:
Content-Disposition: attachment;
creation-date="Tue, 22 Jul 2008 10:03:09 GMT";
filename="test1kb.file";
modification-date="Tue, 22 Jul 2008 10:03:24 GMT"The error however does not occur in an earlier version of our product. After comparing the code it turns out that we now always make a copy of the Message-object
Message copyMessage1 = new MimeMessage((MimeMessage)message)We create this copy to prevent other errors with (badly implemented) IMAP-servers (or emulated IMAP services), in some other error-cases we create yet another copy using:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
message.writeTo(bos);
Message copyMessage2 = new MimeMessage(session, new ByteArrayInputStream(bos.toByteArray()));With the malformed headers, both types of copies fail, while the original Message-object works fine. Although I appreciate that all bets are off once RFCs aren't followed by mailclients, we would like to get the same behaviour for the original and the copies (preferably the behaviour of the original of course). Especially since our product is used by a wide variety of customers with different IMAP servers and mailclients (which clearly do not always follow the specs).
I have a SSCCE available together with 2 EML-files (1 with the faulty headers and 1 with the corrected headers (both manually crafted based on an example mail from our customer)), if you have an e-mail address I can send it to, let me know.As you've figured out, the message without the quoting is wrong. If you can report the
problem to the owner of the program that creates those messages, that would be the
best approach.
When you make a copy of the message as you're doing, the message is being parsed
by JavaMail instead of your IMAP server. JavaMail is parsing the message according to
the spec. Your IMAP server may have some heuristics that allow it to better handle
bogus messages. It might be worth considering such heuristics for JavaMail; there's
already a special hack for the "filename" parameter to handle the case where the filename
contains whitespace but is not quoted.
Send your example to me at [email protected] and let me see what I can do to
improve JavaMail. -
Hello Everyone,
I get 2 exceptions when I use the MimeMultipart's getCount method on e-mail messages that have either a colon or equals characters.
javax.mail.internet.ParseException: Expected ';', got ":"
at javax.mail.internet.ParameterList.<init>(ParameterList.java:179)
at javax.mail.internet.ContentType.<init>(ContentType.java:100)
at javax.mail.internet.MimeMultipart.parsebm(MimeMultipart.java:651) In the above case the Content-Types of the MimeMultipart BodyParts contain colon(s) as in these examples:
Content-Type: multipart/alternative;
boundary="------------106493654088256";
class-id=2:7dHScNImUABLVHAHX3omUA:1738023
Content-Type: text/plain; charset=us-ascii; class-id=2:5BrQ7RNUzCDbwrCr3G9UzC:1738023
Content-Type: text/html; charset=us-ascii; class-id=2:4O40LtDu6zISq4z4eMKu6z:1738023
I couldn't find any specifications for Content-Type in RFC 822 , which is used by JavaMail.
I don't have control over what the incoming E-Mail messages contain.
Because mimeMultipart.getCount(); throws the above exceptions, I'm unable to count the number of body parts in the e-mails that have these special characters (colon, equals sign) in the Content-Type header.
I am catching the above exception though, so the processing of the rest of the e-mails continues without interruption.
However, is there any way I could get the count of the body parts in a MimeMultipart message that has problematic Content-Types as shown above?
Should I file a bug?
javax.mail.internet.ParseException: Expected ';', got "="
at javax.mail.internet.ParameterList.<init>(ParameterList.java:179)
at javax.mail.internet.ContentType.<init>(ContentType.java:100)
at javax.mail.internet.MimeMultipart.parsebm(MimeMultipart.java:651)In the above case the Content-Types in the Multipart email message are as follows:
Content-Type: multipart/alternative; boundary=----=_NextPart_boundary_000_aPpABvk398f_v.2.0.ENC7bin
------=_NextPart_boundary_000_aPpABvk398f_v.2.0.ENC7bin
Content-Type: text/plain; charset=us-ascii
java version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode, sharing)
JavaMail version 1.4
I searched everywhere, but couldn't find a solution. Most people are facing this problem.
Any help is appreciated.You're misreading the specs.
RFC 2045 defines the general syntax rules for the Content-Type header, including the requirements
for parameters:
content := "Content-Type" ":" type "/" subtype
*(";" parameter)
; Matching of media type and subtype
; is ALWAYS case-insensitive.
parameter := attribute "=" value
attribute := token
; Matching of attributes
; is ALWAYS case-insensitive.
value := token / quoted-string
token := 1*<any (US-ASCII) CHAR except SPACE, CTLs,
or tspecials>
tspecials := "(" / ")" / "<" / ">" / "@" /
"," / ";" / ":" / "\" / <">
"/" / "[" / "]" / "?" / "="
; Must be in quoted-string,
; to use within parameter values{code}
RFC 2046 is describing the syntax requirements for the boundary value that appears as a separator
in a multipart message. That boundary value must follow the RFC 2045 rules when included as a
parameter in the Content-Type header.
Understand? -
Bursting Java API throws an error javax.mail.internet.ParseException
Hi,
I am using the BurstingProcessorEngine API call send emails to the employees of an organization.
When i used the bursting file with the paramter of attachments to false, the email goes through. When i change the attachment parameter to yes in the bursting control file then program errors with an exception [oracle.apps.xdo.batch.DeliveryHelper][EXCEPTION] javax.mail.internet.ParseException
following is how i the bursting control file i have used
<?xml version="1.0" encoding="UTF-8" ?>
<xapi:requestset xmlns:xapi="http://xmlns.oracle.com/oxp/xapi/" type="bursting">
<xapi:request select="/PAYSLIP_REPORT/PAYSLIP">
<xapi:delivery>
<xapi:email server="exchange.corp.rghent.com" port="25" from="[email protected]">
<xapi:message id="EMAIL1" to="${EMAIL}" content-type="text/html" attachment="true" subject="Test Email">
Hello,
Oracle Workflow
</xapi:message>
</xapi:email>
</xapi:delivery>
<xapi:document key="${EMPLOYEE_NUMBER}" output-type="PDF" output="${EMPLOYEE_NUMBER}.pdf" delivery="EMAIL1">
<xapi:template type="rtf" location="xdo://PAY.XXEPUSDEPADVXML_PDF.en.US/?getSource=true" filter="">
</xapi:template>
</xapi:document>
</xapi:request>
</xapi:requestset>Hi,
You need to change the output-type to lower case, ie "pdf".
Regards,
Rajeev -
I got javax.mail.internet.ParseException ...
Hi, I'm Korean Developer...
I'm not good at English...
But I need somebody's help...so I decide to write message...
javax.mail.internet.ParseException
at javax.mail.internet.ParameterList.<init>(ParameterList.java:61)
at javax.mail.internet.ContentType.<init>(ContentType.java:83)
at javax.mail.internet.MimeMultipart.parse(MimeMultipart.java:269)
at javax.mail.internet.MimeMultipart.getCount(MimeMultipart.java:159)
I got Exception wher excute following code...
int parseCnt = 0;
partCnt = multipart.getCount();
I think mail I parsed has some kind of problem...
I check the whole mail message I found some different feature from others.
following is the example...
Content-Type: multipart/mixed; boundary="-MOQ1005285799bcc5883894d30bb8796fb89ea77ad05c";
boundary statement is ended with ;(semicolon), but others are not...
Is this Javamail bug...?
Somebody please help...
I will really appreciate...I've got the same problem, with the following header line:
Content-type: multipart/related;
boundary=boundary-test-1;
type=multipart/related
Netscape read correctly the message so I think
there is a bug in JavaMail -
Javax.mail.internet.ParseException while busrting report using control file
Hi everyone...
I am trying to run a concurrent program that will burst emails using a control file.
In the data definition i want to use few parameters whose values will be passed from concurrent program.In the data definition i am calling an after report trigger function which will fire the seeded email bursting program.
My data definition file sample:
?xml version="1.0" encoding="UTF-8" ?>
<dataTemplate name="dataTemplateName" description="Template description" defaultPackage="BIREPORTBURSTINGAK_PKG" version="1.0">
<parameters>
<parameter name="P_NAME" dataType="varchar"/>
</parameters>
<dataQuery>
<sqlStatement name="Q1">
<![CDATA[
select
emp_Id "EmployeeId"
,emp_Name "EmployeeName"
,emp_Dept "Department"
,emp_Org "Organization"
,emp_Email "Email"
,emp_salary "Salary"
--,emp_Phone "Phone"
from reportSample_AK
where emp_name=:P_NAME
]]>
</sqlStatement>
</dataQuery>
<dataTrigger name="afterReportTrigger" source="BIREPORTBURSTINGAK_PKG.afterReportTrigger(:P_NAME)" />
<dataStructure>
<group name="G_EMPLOYEE" source="Q1">
<element name = "EMPID" value="EmployeeId"/>
<element name = "ENAME" value="EmployeeName"/>
<element name = "DEPT" value="Department"/>
<element name = "ORG" value="Organization"/>
<element name = "EMAIL" value="Email"/>
<element name = "SAL" value="Salary"/>
--<element name = "PHONE" value="Phone"/>
</group>
</dataStructure>
</dataTemplate>
my control file:
<xapi:requestset xmlns:xapi="http://xmlns.oracle.com/oxp/xapi" type="bursting">
<xapi:request select="/DATATEMPLATENAME/LIST_G_EMPLOYEE/G_EMPLOYEE">
<xapi:delivery>
<xapi:email id="123" server="agni.bangalore.bedford.local" port="25" from="[email protected]" reply-to="[email protected]">
<xapi:message id="123" to="${EMAIL}" attachment="true" subject=" Dear: ${ENAME}">
Please review the attachment .
Regards,Anupama karote
</xapi:message>
</xapi:email>
</xapi:delivery>
<xapi:document output-type="pdf " delivery="123">
<xapi:template type="rtf" location="/usr/tmp/TESTMAIL_AK.rtf" filter=".//LIST_G_EMPLOYEE">
</xapi:template>
</xapi:document>
</xapi:request>
</xapi:requestset>
my package deatils:
create or replace package BIREPORTBURSTINGAK_PKG
As
P_NAME varchar2(16);
Function Afterreporttrigger(P_NAME varchar2) Return Boolean;
end biReportBurstingAK_pkg;
create or replace package body BIREPORTBURSTINGAK_PKG AS
Function Afterreporttrigger(P_NAME varchar2) Return Boolean
is
v_request_id NUMBER;
BEGIN
v_request_id := fnd_request.submit_request('XDO'
,'XDOBURSTREP'
,NULL
,NULL
,FALSE
,'N'
,TO_CHAR(fnd_global.conc_request_id)
,'Yes'
return true;
End Afterreporttrigger;
end biReportBurstingAK_pkg;
i have created data definition and template and attched it to the concurrent program via bi publisher.
While running the main concurrent program i am getting the following error:
create or replace package BIREPORTBURSTINGAK_PKG
As
P_NAME varchar2(16);
Function Afterreporttrigger(P_NAME varchar2) Return Boolean;
end biReportBurstingAK_pkg;
create or replace package body BIREPORTBURSTINGAK_PKG AS
Function Afterreporttrigger(P_NAME varchar2) Return Boolean
is
v_request_id NUMBER;
BEGIN
v_request_id := fnd_request.submit_request('XDO'
,'XDOBURSTREP'
,NULL
,NULL
,FALSE
,'N'
,TO_CHAR(fnd_global.conc_request_id)
,'Yes'
return true;
End Afterreporttrigger;
end biReportBurstingAK_pkg;
Any help is greatly appreciated.
Regards,Am also facing the same issue. Did anyone find a resolution for this problem?
Regards
Anoop -
Javax.mail.internet.AddressException how to escape double quote
When I try and parse the following internetaddress:
InternetAddress.parse("sevsev o'first sevsev o\"last <[email protected]>")I get the following stacktrace:
Tomcat Log [(CKY50) 2006/09/27 15:26:29.217]: 4 Email.setReplyToAddresses() javax.mail.internet.AddressException: Missing '"' in string ``sevsev o'first sevsev o"last <[email protected]>'' at position 52
at javax.mail.internet.InternetAddress.parse(InternetAddress.java:676)
at javax.mail.internet.InternetAddress.parse(InternetAddress.java:529)
at javax.mail.internet.InternetAddress.parse(InternetAddress.java:506)How do I escape the double quote? Thanks in advance!Thanks for the quick response, I tried that and got the same stacktrace:
Tomcat Log [(3YVJS) 2006/09/27 15:44:38.554]: 4 Email.setReplyToAddresses() javax.mail.internet.AddressException: Missing '"' in string ``sevsev o'first sevsev o"last <[email protected]>'' at position 52
at javax.mail.internet.InternetAddress.parse(InternetAddress.java:676)
at javax.mail.internet.InternetAddress.parse(InternetAddress.java:529)
at javax.mail.internet.InternetAddress.parse(InternetAddress.java:506) -
I am trying to get hotmail emails and store in Oracle 10g database.
When I am executing receivemail procedure from Oracle 10g database. I am getting following error.
connect to ESIMSCO_UTIL_OWNER
SQL> set serveroutput on
SQL>
SQL> Declare
2 v_error_msg varchar2(10000);
3 Begin
4 v_error_msg:=receivemail('pop3.live.com', '<My email address>@hotmail.com', '<My email password>');
5 dbms_output.put_line(v_error_msg);
6 End;
7 /
javax.mail.AuthenticationFailedException: EOF on socket
PL/SQL procedure successfully completed.
SQL>
I did following steps, but still I am getting this error. Can somebady help me to solve this problem.
connect sys/<password>@esimsco as sysdba
connect to sys
SQL*Plus: Release 10.2.0.1.0 - Production on Wed May 30 16:02:04 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> begin
1 dbms_java.grant_permission( 'ESIMSCO_UTIL_OWNER', 'SYS:java.util.PropertyPermission', '*', 'read,write' );
2 commit;
3 end;
4 /
PL/SQL procedure successfully completed.
SQL> begin
2 dbms_java.grant_permission(
3 grantee => 'ESIMSCO_UTIL_OWNER',
4 permission_type => 'SYS:java.net.SocketPermission',
5 permission_name => '*',
6 permission_action => 'connect,resolve'
7 );
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> begin
2 dbms_java.grant_permission(
3 grantee => 'ESIMSCO_UTIL_OWNER',
4 permission_type => 'SYS:java.util.PropertyPermission',
5 permission_name => '*',
6 permission_action => 'read,write'
7 );
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> commit;
Commit complete.
SQL>
Then I connect ESIMSCO_UTIL_OWNER.
connect to ESIMSCO_UTIL_OWNER
Create 2 tables.
create table attachment(
at_file varchar2(500),
at_mimetype varchar2(500),
at_attachment blob
create table email (
em_incident integer,
em_from varchar2(1000),
em_subject varchar2(1000),
em_body nclob
Then Create java source named receivemail.
create or replace and compile java source named receivemail as
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import java.io.*;
import java.sql.*;
import sqlj.runtime.*;
import oracle.sql.BLOB;
public class ReceiveMail
static void getAttachments(Message message, int incidentNo)
throws MessagingException, IOException, SQLException {
//String attachments = "";
Object content = message.getContent();
if (content instanceof Multipart)
// -- Multi part message which may contain attachment
Multipart multipart = (Multipart)message.getContent();
// -- Loop through all parts of the message
for (int i=0, n=multipart.getCount(); i<n; i++) {
Part part = multipart.getBodyPart(i);
String disposition = part.getDisposition();
if ((disposition != null) &&(disposition.equals(Part.ATTACHMENT) || disposition.equals(Part.INLINE))) {
//-- This part is a file attachment
String fileName = incidentNo+"_"+part.getFileName().replace(' ','_');
System.out.println("FILE: " + fileName);
String contentType = part.getContentType();
String mimeType = contentType.substring(0,contentType.indexOf(";"));
System.out.println("FILETYPE: " + mimeType);
InputStream is = part.getInputStream();
// -- To work with a BLOB column you have to insert a record
// -- with an emptly BLOB first.
#sql { insert into attachment(at_file, at_mimetype, at_attachment)
values (:fileName, :mimeType, empty_blob()) };
// -- Retrieve the BLOB
BLOB attachment = null;
#sql { select at_attachment into :attachment
from attachment where at_file = :fileName };
// -- Fill the BLOB
OutputStream os = attachment.getBinaryOutputStream();
int j;
while ((j = is.read()) != -1) {
os.write(j);
is.close();
os.close();
// -- Set the BLOB by updating the record
#sql { update attachment set at_attachment = :attachment
where at_file = :fileName };
static String getPlainTextBody(Message message)
throws MessagingException, IOException
Object content = message.getContent();
if (message.isMimeType("text/plain")) {
// -- Message has plain text body only
System.out.println("SIMPLE TEXT");
return (String) content;
} else if (message.isMimeType("multipart/*")) {
// -- Message is multipart. Loop through the message parts to retrieve
// -- the body.
Multipart mp = (Multipart) message.getContent();
int numParts = mp.getCount();
System.out.println("MULTIPART: "+numParts);
for (int i = 0; i < numParts; ++i) {
System.out.println("PART: "+mp.getBodyPart(i).getContentType());
if (mp.getBodyPart(i).isMimeType("text/plain")) {
// -- Return the plain text body
return (String) mp.getBodyPart(i).getContent();
} else if (mp.getBodyPart(i).isMimeType("multipart/*")) {
// -- Body is also multipart (both plain text and html).
// -- Loop through the body parts to retrieve plain text part.
MimeMultipart mmp = (MimeMultipart) mp.getBodyPart(i).getContent();
int numBodyParts = mmp.getCount();
System.out.println("MULTIBODYPART: "+numBodyParts);
for (int j = 0; j < numBodyParts; ++j) {
System.out.println("BODYPART: "+mmp.getBodyPart(j).getContentType());
if (mmp.getBodyPart(j).isMimeType("text/plain")) {
// -- Return the plain text body
return (String) mmp.getBodyPart(j).getContent();
return "";
} else {
System.out.println("UNKNOWN: "+message.getContentType());
return "";
static void saveMessage(Message message)
throws MessagingException, IOException, SQLException
//String body = "";
int incidentNo;
// -- Get a new incident number
#sql { select seq_incident.nextval into :incidentNo from dual };
// -- Get the header information
String from = ((InternetAddress)message.getFrom()[0]).getAddress();
System.out.println("FROM: "+ from);
String subject = message.getSubject();
System.out.println("SUBJECT: "+subject);
// -- Retrieve the plain text body
String body = getPlainTextBody(message);
// -- Store the message in the email table
#sql { insert into email (em_incident, em_from, em_subject, em_body)
values (:incidentNo, :from, :subject, :body) };
// -- Retrieve the attachments
getAttachments(message, incidentNo);
#sql { commit };
// -- Mark message for deletion
// message.setFlag(Flags.Flag.DELETED, true);
public static String Receive(String POP3Server, String usr, String pwd)
Store store = null;
Folder folder = null;
try
// -- Get hold of the default session --
Properties props = System.getProperties();
props.put("mail.pop3.connectiontimeout", "60000");
Session session = Session.getDefaultInstance(props, null);
// -- Get hold of a POP3 message store, and connect to it --
store = session.getStore("pop3");
store.connect(POP3Server,995, usr, pwd);
System.out.println("Connected");
// -- Try to get hold of the default folder --
folder = store.getDefaultFolder();
if (folder == null) throw new Exception("No default folder");
// -- ...and its INBOX --
folder = folder.getFolder("INBOX");
if (folder == null) throw new Exception("No POP3 INBOX");
// -- Open the folder for read_write (to be able to delete message) --
folder.open(Folder.READ_WRITE);
// -- Get the message wrappers and process them --
Message[] msgs = folder.getMessages();
for (int msgNum = 0; msgNum < msgs.length; msgNum++){
saveMessage(msgs[msgNum]);
System.out.println("No more messages");
return ("SUCCESS");
catch (Exception ex){
ex.printStackTrace();
return ex.toString();
finally{
// -- Close down nicely --
try{
// close(true), to expunge deleted messages
if (folder!=null) folder.close(true);
if (store!=null) store.close();
catch (Exception ex){
//ex.printStackTrace();
return ex.toString();
Then create function receivemail.
create or replace function receivemail(pop3_server in string,
pop3_usr in string,
pop3_pwd in string)
return varchar2
is language java name
'ReceiveMail.Receive(java.lang.String,
java.lang.String,
java.lang.String) return String';
And then trying to execute function receivemail, but I am getting following error.
SQL> set serveroutput on
SQL>
SQL> Declare
2 v_error_msg varchar2(10000);
3 Begin
4 v_error_msg:=receivemail('pop3.live.com', '<Hotmail email address>@hotmail.com', 'Hotmail password');
5 dbms_output.put_line(v_error_msg);
6 End;
7 /
javax.mail.AuthenticationFailedException: EOF on socket
PL/SQL procedure successfully completed.
SQL>
I am requesting, please help me to solve this problem.
I will be very thankful for your kind help and support.
Amol......
Edited by: Amol Karyakarte on 31-May-2012 7:27 AMHello,
I don't think this is the right forum, as this question seems to have nothing to do with the Oracle Forms tool.
You'd better ask it in the database forum.
Francois -
SOAP and javax.mail.internet.ContentType
Hi there,
I have a problem with a very simple SOAP app:
I get a saaj error "Unable to internalize message", which gets caused by a
NoClassDefFoundError: javax/mail/internet/ContentTypeI have tried everything:
1) Copied mail.jar to ./jre/lib/ext
2) Added the directory containing mail.jar to the CLASSPATH, in Windoze and in Sun ONE Studio
When I try to instantiate javax.mail.internet.ContentType in the same app, it works fine, i.e. the class can be found, but saaj doesn't see it for some strange reason.
Any ideas?
I am using the Web Services pack 1.3 and java version:
java version "1.4.1_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_02-b06)
Java HotSpot(TM) Client VM (build 1.4.1_02-b06, mixed mode)Thanks in advance
AndiYou also need to have the Java Activation Framework available (activation.jar).
The NoClassDefFoundErr can me caused by a class being used by a class not being found. -
Javax.mail.internet.MimeMessage not found
Error message - Cannot find the class file for javax.mail.internet.MimeMessage. Fix the build path then try building this project
I am getting this error message I am uisng jdk 1.6 what additional jar should I add ?[http://www.google.com/search?hl=en&q=javax.mail.internet.MimeMessage+jar+download]
-
Wanna download javax.mail.* and javax.mail.internet.*
Hi all;
i'm a beginner in JSP and want help in downloading api classes for javax.mail.* and javax.mail.internet.*...would any1 like to tell me the URL for it and also after downloading, wat sequence would i follow to make these files run properly with my code.
would b waiting desperately for immediate response.
Regards.Go to
http://java.sun.com
There are 5 drop List. Under the 2nd Drop List Search for JavaMail(TM) API 1.3. Now continue to download. U will download a file names javamail-1_3.zip. There are some jar files which u need to extract and add to ur classpath settings.
Not use the following code to send a simple SMTP Mail.
//Java specific imports
import javax.activation.FileDataSource;
import javax.activation.DataHandler;
import java.io.*;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
public class SendMail
Session session = null;
public SendMail() throws Exception
Properties props = new Properties();
String strMailIPServer = "Your SMTP Server IP";
props.put("mail.smtp.host", strMailIPServer);
session = Session.getDefaultInstance(props, null);
public void sendMail(String strToAddress, String strFromAddress, String strSubject, String strMessage) throws Exception
try
long intTimeForTenMinutes = 60;
MimeMessage objMimeMsg = new MimeMessage(session);
//Address objFromAddr = new InternetAddress(strFromAddress);
javax.mail.internet.InternetAddress objFromAddr = new javax.mail.internet.InternetAddress (strFromAddress);
Address[] objToAddr = InternetAddress.parse(strToAddress);
objMimeMsg.setFrom(objFromAddr);
objMimeMsg.setRecipients(Message.RecipientType.TO, objToAddr);
objMimeMsg.setSubject(strSubject);
objMimeMsg.setContent(strMessage, "text/html");
Transport.send(objMimeMsg);
catch (Exception mex)
throw mex;
All the Best!
Thanks and regards,
Pazhanikanthan. P -
Javax.mail, javax.mail.internet package
hi all,
i ve a mail application,in jsf page. but on running it shows
package javax.mail, javax.mail.internet does not exist.
where do i get these packages ?
thanksthank u , i got downloaded the version 1.4 of javamail.
Edited by: user7895 on Apr 14, 2010 7:20 AM -
I use Tomcat 4.1.27 and already copied the jar files of JavaMail 1.3.1 and JAF 1.0.2 into the common/lib folder of Tomcat. But when I use the method javax.mail.internet.InternetAddress.validate() in my Servlet, a ServletException is thrown because Tomcat cannot find this method. Can someone help me?
ThanksThis is surely a classpath problem. Check if Tomcat has another version of 'mail.jar' in its classpath.
cheers
Projyal
Maybe you are looking for
-
Error while activating 2LIS_13_VDITM
Hi All, I have activated the 3.x datasource for 2LIS_13_VDITM from T Code RSDS , activated the infosource etc from the business content. It is fine till here.Now when i try to migrate the data source to 7 flow, it is throwing an error " Internal erro
-
Importing a new file to CS3... HELP!!!!!
Hi, I have installed Adobe premiere pro CS3. I'm just tryin to import a new file with the format .mpg but it always give me an error message which says "File format not supported". A lil help Please Thanks
-
Hi i have a code to see through the webcam import javax.media.Manager; import javax.media.MediaLocator; import javax.media.Player; import javax.swing.*; import java.awt.Component; public class SwingCapture { public static void main(String[] args
-
I have a 35 page pdf file that looks like it was originally a Powerpoint presentation. Is ther an easy way to convert a pdf file to Keynote?
-
My XI Standard: Why are none of the Fill & sign tools available?
I am simply attempting to set up and use digital signature, and am finding I am spinning in circles. I am unable to access a location to set up digital signature within either the Fill & Sign or Tools tabs. Actually, the functionality of all the item