JavaMail - MimeBodyPart.attachFile()
Dusan Zatkovsky
msk.conf na gmail.com
Úterý Říjen 6 12:57:40 CEST 2009
On Tuesday 06 of October 2009 12:46:44 Gabriel Gajdos wrote:
> Nie je problém v tom, že nepoužívaš Multipart message? Teda ak máš v maili
> iba jednu časť, tak tá je zároveň aj jeho jediným telom.
> Skúšal si pridať nejaký text (aspoň "posielam subory")?
Vyrabam si mnozinu BodyPart-ov, ktoru nakoniec zlucim do MultiPart a zapisem
do outputstreamu.
Na tento problem som narazil v uz hotovom kode, ktory realne pouzivam na smime
prenos velkych suborov uz nejaky cas. Prejavilo sa to v momente, ked sa subor
koncil na .txt.
Pozriem sa na tu filetypemap, co pisala Radovana.
Diky
> GG
> -----Original Message-----
> From: konference-bounces na java.cz [mailto:konference-bounces na java.cz] On
> Behalf Of Dusan Zatkovsky
> Sent: Tuesday, October 06, 2009 12:40 PM
> To: Java
> Subject: Re: JavaMail - MimeBodyPart.attachFile()
>
> Este ma napadlo - ja by som este teoreticky dokazal prezit, ze sa mi .txt
> nacitava do stringu, ale problem bude u velkych suborov, pretoze moj pokus
> s
>
> 2x800MB ascii subormi "foo.txt" a jeho kopiu "foo.bin" dopadol tak, ze
> volanie attachFile() (a alternativa s DataSource) pre "foo.bin" trva zlomok
> sekundy (vytvori sa len referencia na subor), ale u "foo.txt" to vyzere
> pamat
> a crashne (nacitava 800MB do stringu).
>
> > DD.
> >
> > Diky, ale nepomohlo:
> >
> > for ( String s : new String[] { "/etc/passwd", "/tmp/passwd.txt" } )
>
> {
>
> > FileDataSource fds = new FileDataSource(new File(s));
> > DataHandler dh=new DataHandler(fds);
> > System.out.println(dh.getContentType());
> > }
> >
> > - java.io.FileInputStream
> > - java.lang.String
> >
> > > Dobry den,
> > >
> > > skuste attachment pridat cez DataHandler:
> > >
> > > MimeBodyPart oBody = new MimeBodyPart();
> > > FileDataSource oFds = new FileDataSource("/etc/passwd.txt");
> > > oBody.setDataHandler(new DataHandler(oFds));
> > > oBody.setFileName("passwd.txt");
> > >
> > > S pozdravom
> > > Radovana Straube
> > >
> > > --- On Tue, 10/6/09, Dusan Zatkovsky <msk.conf na gmail.com> wrote:
> > > > From: Dusan Zatkovsky <msk.conf na gmail.com>
> > > > Subject: JavaMail - MimeBodyPart.attachFile()
> > > > To: "Java" <konference na java.cz>
> > > > Date: Tuesday, October 6, 2009, 11:57 AM
> > > > Ahoj.
> > > >
> > > > Ma tu niekto skusenosti s JavaMail? Konkretne sa mi jedna o
> > > > uvedenu metodu.
> > > >
> > > > Kod:
> > > >
> > > > MimeBodyPart part1 = new
> > > > MimeBodyPart();
> > > > part1.attachFile( new File (
> > > > "/etc/passwd");
> > > > part1.setFileName("passwd");
> > > >
> > > > MimeBodyPart part2 = new
> > > > MimeBodyPart();
> > > > part2.attachFile( new File (
> > > > "passwd.txt");
> > > > part2.setFileName("/tmp/passwd.txt");
> > > >
> > > > /etc/passwd je ako kazdy vie ascii textovy subor.
> > > > passwd.txt je jeho prosta
> > > > kopia pod inym nazvom (.txt).
> > > >
> > > > Nasleduje problem:
> > > >
> > > >
> > > >
> > > > System.out.println(part1.getContentType());
> > > >
> > > > System.out.println(part1.getContent().getClass());
> > > >
> > > > // text/plain, java.io.FileInputStream
> > > >
> > > >
> > > >
> > > > System.out.println(part2.getContentType());
> > > >
> > > > System.out.println(part2.getContent().getClass());
> > > >
> > > > // text/plain, java.lang.String !!!
> > > >
> > > > Vypada to, ze ten **** nejak heurestikuje podla mena a
> > > > obsahu suboru a usudi,
> > > > ze textovy subor je mozne ulozit do stringu. To je ale
> > > > presne to, co nechcem,
> > > > pretoze sa obavam, ze pri dekodovani smime spravy moze
> > > > dojst k nejakym
> > > > neocakavanym javom ( kodovanie a spol... ).
> > > >
> > > > Pozeral som sa aj na vysledky pomocou
> > > > part.writeTo(System.out), oba su zhodne:
> > > >
> > > > Content-Disposition: attachment;
> > > > filename=passwd
> > > > ... obsah suboru
> > > >
> > > > Content-Disposition: attachment;
> > > > filename=passwd.txt
> > > > ... obsah suboru
> > > >
> > > >
> > > > Da sa nejak MimeBodyPart donutit, aby attachFile() robil
> > > > skutocny attach file?
> > > >
> > > >
> > > > Dik.
> > > >
> > > > --
> > > > Dusan
> > > >
> > > >
> > > > ... tykajte mi
--
Dusan
... tykajte mi
Další informace o konferenci Konference