Solved

Viewing .gif, .lwp, .zip, .123 using javamail

Posted on 2004-08-24
17
547 Views
Last Modified: 2013-11-24
I am sending mail via javamail, but when I try to save certain files to my system and view them the files are corrupt.  I am not able to access .gif, .lwp, .123, .zip, or .exe.  I am setting the content-type based on the file extension.  Any ideas?

int i = attachmentfile.lastIndexOf(".");
String s = attachmentfile.substring(i+1);
s = s.trim();
String type = null;
      
if(s.equalsIgnoreCase("zip")){
type="application/x-bolero-doc";
}
else if(s.equalsIgnoreCase("doc")||(s.equalsIgnoreCase("lwp"))){
MimetypesFileTypeMap map = new MimetypesFileTypeMap();
map.addMimeTypes("application/msword");
type="application/msword";
mbp2.setHeader("Content-Type", "application/msword");
}
else if(s.equalsIgnoreCase("txt")||(s.equalsIgnoreCase("text"))){
type="text/plain";
}
else if(s.equalsIgnoreCase("htm")||s.equalsIgnoreCase("html")){
type="text/html";
}
else if(s.equalsIgnoreCase("xls")){
type="application/excel";
}
else if(s.equalsIgnoreCase("pdf")){
MimetypesFileTypeMap map = new MimetypesFileTypeMap();
map.addMimeTypes("application/pdf");
type="application/pdf";
mbp2.setHeader("Content-Type", "application/pdf");
}
else if(s.equalsIgnoreCase("gif")){
type="image/gif";
}
else if(s.equalsIgnoreCase("jpeg")||(s.equalsIgnoreCase("jpg")||(s.equalsIgnoreCase("jpe")))){
type="image/jpeg";
}
else if(s.equalsIgnoreCase("mpeg")||(s.equalsIgnoreCase("mpg"))){
type="audio/x-mpeg";
}
else if(s.equalsIgnoreCase("wav")){
type="audio/x-wav";
}
else {
type="application/octet-stream";
}
                              
0
Comment
Question by:rws111
  • 8
  • 6
  • 3
17 Comments
 
LVL 12

Expert Comment

by:Giant2
ID: 11881827
If you use for all:
type="application/octet-stream";
are there any problems?

Giant.
0
 

Author Comment

by:rws111
ID: 11882126
Yes, I began with setting the type for everything equal to "application/octet-stream".  Then changed it to set type based on file extension, but no progress.....
0
 
LVL 12

Expert Comment

by:Giant2
ID: 11882196
mmmhm.

and trying to use
content="text/html
even for gif (for example).
0
 
LVL 12

Expert Comment

by:Giant2
ID: 11882218
Do you have seen here?
http://www.faqs.org/rfcs/rfc1341.html
0
 
LVL 12

Expert Comment

by:Giant2
ID: 11882255
I hope you set the MimeType with the type selected after all the if else else...else.

Isn't it?
0
 

Author Comment

by:rws111
ID: 11882407
this is the remainder of the code where attachmentBody is the bytes for the file contents - don't believe i'm setting the MimeType - where/how do i do that?
ByteArrayDataSource bads =
new ByteArrayDataSource(
attachmentBody,
type
);
mbp2.setDataHandler(new DataHandler(bads));
int idx = attachmentfile.lastIndexOf("\\"); //TODO both slashes
mbp2.setFileName(attachmentfile.substring(idx));
0
 
LVL 12

Accepted Solution

by:
Giant2 earned 250 total points
ID: 11882661
attachmentBody could be iso-8859-1, UTF-8, or other
then you could set even:
mbp2.setHeader(...)
0
 

Author Comment

by:rws111
ID: 11884503
setting the header did not help ....
mbp2.setHeader("Content-Transfer-Encoding", "base64" );
mbp2.setHeader("Content-Transfer-Encoding", "UTF-8" );
0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 92

Assisted Solution

by:objects
objects earned 250 total points
ID: 11887177
are you sure its not related to the actual attachment contents you are sending?
0
 

Author Comment

by:rws111
ID: 11887211
actually i am using a ByteArrayDataSource and in my InputStream method i had a statement to remove the final CR/LF - well that worked for some, but corrupted others - after commenting out that statement it all worked fine.  i also set the default content-type to octet-stream. thanks alot for the help!

public InputStream getInputStream() throws IOException {
if (data == null) throw new IOException("no data");
return new ByteArrayInputStream(data);
//return new ByteArrayInputStream(data,0,data.length - 2); //remove the final CR/LF
}
0
 

Author Comment

by:rws111
ID: 11887216
requesting close of this question
0
 
LVL 92

Expert Comment

by:objects
ID: 11887255
> requesting close of this question

why?
0
 
LVL 12

Expert Comment

by:Giant2
ID: 11889487
> requesting close of this question

So do you solved all?
0
 

Author Comment

by:rws111
ID: 11905421
yes it has been resolved, the solution is noted in my comment on 08/24/2004 02:34PM PDT
0
 
LVL 92

Expert Comment

by:objects
ID: 11907537
and didn't I suggest above to check the sending of the attachment :)
0
 
LVL 12

Expert Comment

by:Giant2
ID: 11910129
>yes it has been resolved

So I suggest 2 ways:

Now you want to delete this post? [send a zero point message to the community support:
http://www.experts-exchange.com/Community_Support/    asking for deleting this post and refund points]

Now you want to close this post? [assign the points to Expert/s help you]

Bye, Giant.
0
 
LVL 12

Expert Comment

by:Giant2
ID: 11928859
Thanks.
:)
Happy to help you.
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
Java functions are among the best things for programmers to work with as Java sites can be very easy to read and prepare. Java especially simplifies many processes in the coding industry as it helps integrate many forms of technology and different d…
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
This video teaches viewers about errors in exception handling.

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now