2010-01-19 7 views
15

J'essaye d'envoyer un email avec des pièces jointes et trouvé l'adresse de courrier de Java pour être irritante insuffisante.Alternatives à Java Mail API

Il n'y a que deux implémentations de javax.activation.DataHandler qui me demande de créer un fichier local pour envoyer une pièce jointe. Peut-être que je dois écrire ma propre implémentation de DataHandler mais je ne veux pas faire cela à ce stade.

merci d'avance!

Addy

EDIT: Je voulais dire javax.activation.DataSource pas javax.activation.DataHandler

+0

Pouvez-vous l'implémenter vous-même, peut-être? J'ai trouvé que Java Mail était insuffisant. http://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol – Pindatjuh

Répondre

9

Le ressort fournit un partial wrapper around the JavaMail API , ce qui le rend un peu plus facile à avaler.

Par exemple, la classe MimeMessageHelper vous permet d'ajouter des pièces jointes à l'aide de diverses interfaces, including from a general InputStream source.

Les mécanismes sous-jacents de JavaMail sont très complets et robustes, c'est juste l'API qui est mauvaise. Cela répond à cette préoccupation, dans une large mesure.

+0

Yup, c'est presque proche de la maison, si cela ne vous dérange pas MBs vaut la peine de pots. !! – anilit99

+2

Au printemps 3, le contenu du courrier est dans le JAR de support de contexte qui, avec ses dépendances, va être relativement petit (certainement pas MBs) – skaffman

1

Avez-vous essayé apache commons pour cette tâche?
Il a MultiPartEmail qui a plusieurs méthodes surchargées attach.

+0

Oh merci pour ça! Mais même cette classe ne prendra pas de chaîne en entrée et l'enverra en pièce jointe! Il doit provenir d'un fichier ou d'un URI. – anilit99

1

Écrire une source de données personnalisée est assez facile (j'ai jeté un ensemble pour l'une de nos applications il y a un an, et cela a pris moins d'une heure). Si c'est le seul problème que vous rencontrez avec JavaMail, je vous suggère de l'essayer. Cela dit, je suis d'accord que JavaMail est définitivement trop complexe pour les cas d'utilisation les plus courants.