2010-01-19 7 views
15

Sto tentando di inviare un'e-mail con allegati e ho trovato che l'API di java mail è irragionevolmente insufficiente.Alternative all'API Java Mail

Esistono solo due implementazioni di javax.activation.DataHandler che mi impongono di creare un file locale per inviare un allegato. Potrebbe essere che devo scrivere la mia implementazione di DataHandler ma non voglio farlo a questo punto.

grazie in anticipo!

Addy

EDIT: Volevo dire javax.activation.DataSource non javax.activation.DataHandler

+0

Potete implementarlo da soli, forse? Ho trovato Java Mail insufficiente. http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol – Pindatjuh

risposta

9

Spring fornisce uno partial wrapper around the JavaMail API , rendendolo un po 'più facile da ingoiare.

Ad esempio, la classe MimeMessageHelper consente di aggiungere allegati utilizzando varie interfacce, including from a general InputStream source.

I meccanismi sottostanti di JavaMail sono molto completi e robusti, sono solo le API a essere spazzatura. Ciò affronta questa preoccupazione in larga misura.

+0

Sì, questo è quasi vicino a casa, se non ti dispiace MBs vale la pena di vasi. !! – anilit99

+2

Nella primavera 3, il materiale di posta è nel JAR di supporto contesto che, insieme alle sue dipendenze, sarà relativamente piccolo (certamente non MB) – skaffman

1

Hai provato apache commons per questo compito?
Ha MultiPartEmail che ha diversi metodi sovraccarichi attach.

+0

Oh grazie per quello! Ma anche questa classe non prenderà una stringa come input e la invierà come allegato! Deve essere o da un file o da un URI. – anilit99

1

Scrivere un DataSource personalizzato è piuttosto semplice (ne ho buttato uno uno per una delle nostre app un anno fa, e ci è voluto meno di un'ora). Se questo è l'unico problema che stai avendo con JavaMail, ti suggerisco di provarlo.

Detto questo, sono d'accordo sul fatto che JavaMail è decisamente troppo complesso per i casi di utilizzo più comuni.