J'ai un rapport sur ma page jsp
et j'écris ce rapport au format PDF. Et je veux envoyer le PDF en pièce jointe, mais je ne veux pas stocker le fichier dans la machine locale ou le serveur, mais je veux envoyer un courriel avec la pièce jointe.Envoyer un e-mail avec pièce jointe à l'aide de l'API JAVA Mail sans le stocker dans la machine locale
Répondre
Vous devez écrire votre propre implémentation de javax.activation.DataSource
pour lire les données de pièce jointe à partir d'une mémoire au lieu d'utiliser l'une des implémentations incluses (pour lire un fichier, une URL, etc.). Si vous avez le rapport PDF dans un tableau d'octets, vous pouvez implémenter un DataSource qui retourne le tableau d'octets enveloppé dans un ByteArrayOutputStream.
Si vous utilisez Spring's JavaMail API, vous pouvez faire ce genre de chose assez facilement (ou du moins, aussi facilement que l'API JavaMail le permet, ce qui n'est pas beaucoup). Donc, vous pourriez écrire quelque chose comme ceci:
JavaMailSenderImpl mailSender = ... instantiate and configure JavaMailSenderImpl here
final byte[] data = .... this holds my PDF data
mailSender.send(new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage) throws Exception {
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
// set from, to, subject using helper
helper.addAttachment("my.pdf", new ByteArrayResource(data));
}
});
Les données de pièces jointes peuvent être l'une des abstractions ressources de printemps, ByteArrayResource
est juste l'un d'eux.
Notez que cette partie de l'API Spring est indépendante, elle ne nécessite pas (mais bénéficie) du conteneur Spring.
Depuis JavaMail 1.4 - mail.jar - contient javax.mail.util.ByteArrayDataSource
- https://javamail.java.net/nonav/docs/api/javax/mail/util/ByteArrayDataSource.html
- (https://javamail.java.net/nonav/docs/api/)
- http://www.oracle.com/technetwork/java/javamail/index-138643.html - Emplacement de téléchargement
concernant
Merci, c'était précisément l'information dont j'avais besoin. –
- 1. Mail provenant d'iSeries avec pièce jointe
- 2. télécharger la pièce jointe avec Java
- 3. problème avec la pièce jointe
- 4. Envoyer une pièce jointe avec php
- 5. Objectif C: Comment envoyer un email w/pièce jointe avec iPhone OS v2.2.1?
- 6. Envoyer un rapport SQL dans la pièce jointe E mail avec C# et ASP.NET
- 7. ASPNet EMail pièce jointe à partir de SQL BLOB
- 8. PHP mail() pièce jointe ne s'ouvre pas dans Mac mail
- 9. PHP mail() pièce jointe est corrompu
- 10. Envoyer un e-mail à DISTINCT email
- 11. sp_send_dbmail codage de pièce jointe
- 12. Aide !! Erreur MIME avec mail() et pièce jointe
- 13. Comment envoyer une pièce jointe avec signature e-mail dans Excel
- 14. Envoyer une pièce jointe en mémoire à l'aide d'OpenXML
- 15. Vouloir envoyer un courriel à partir de C# avec pièce jointe comme MS Word
- 16. C# ouvrir un e-mail vide avec une pièce jointe à l'aide d'Exchange
- 17. Envoyer un e-mail via Axapta
- 18. Envoyer un e-mail avec .NET
- 19. Enregistrement de la pièce jointe
- 20. Comment puis-je envoyer des messages à Gmail avec une pièce jointe, en Perl?
- 21. Problème lors de la création d'un e-mail avec pièce jointe en Javascript
- 22. VB.Net Email Envoyer
- 23. Accès à la pièce jointe d'événement SharePoint
- 24. Extraction de l'en-tête To: à partir d'une pièce jointe d'un e-mail
- 25. Envoyer un e-mail à Java?
- 26. SOAP avec pièce jointe (SwA) en C#
- 27. ATT00006.dat fichier attaché automatiquement dans la pièce jointe
- 28. Workflow Sharepoint Tâches pièce jointe
- 29. aide d'application d'email. Envoyer un email à composé adresse e-mail qui est redirigé vers email
- 30. Aperçu InfoPath Pièce jointe
Pourriez-vous envoyer l'e-mail w/pièce jointe, puis supprimer le f local ile après? – weiji