Tôi có báo cáo trong trang jsp
và tôi đang viết báo cáo đó ở định dạng PDF. Và tôi muốn gửi tệp PDF dưới dạng E-Mail kèm theo tệp đính kèm nhưng tôi không muốn lưu trữ tệp trong máy hoặc máy chủ cục bộ nhưng tôi muốn gửi email có tệp đính kèm.Gửi E-Mail có tệp đính kèm bằng API JAVA Mail mà không lưu trữ trong máy cục bộ
Trả lời
Bạn phải tự thực hiện javax.activation.DataSource
để đọc dữ liệu đính kèm từ bộ nhớ thay vì sử dụng một trong các triển khai được bao gồm (để đọc từ tệp, URL, v.v.). Nếu bạn có báo cáo PDF trong một mảng byte, bạn có thể thực hiện một DataSource trả về mảng byte được bao bọc trong một ByteArrayOutputStream.
Nếu bạn sử dụng Spring's JavaMail API, bạn có thể thực hiện việc này khá dễ dàng (hoặc ít nhất, dễ dàng như API JavaMail cho phép, điều này không nhiều). Vì vậy, bạn có thể viết một cái gì đó như thế này:
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));
}
});
Các dữ liệu tập tin đính kèm có thể là bất kỳ trừu tượng Resource Spring, ByteArrayResource
chỉ là một trong số họ.
Lưu ý rằng phần này của API Spring tự đứng lên, nó không yêu cầu (nhưng không được hưởng lợi từ) vùng chứa Spring.
Kể từ JavaMail 1,4 - mail.jar - chứa 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 - tải về vị trí
liên quan
Cảm ơn, đây chính là thông tin tôi cần. –
- 1. gửi e-mail có nhiều tệp đính kèm
- 2. Cách gửi email có tệp đính kèm trong Android
- 3. Nhận nội dung email mà không tìm nạp tệp đính kèm bằng đá quý ruby mail
- 4. Gửi email có tệp đính kèm trong django
- 5. php gửi email html kèm theo tệp đính kèm .csv
- 6. Gửi email có tệp đính kèm bằng cách sử dụng javamail API
- 7. Cách gửi email có tệp đính kèm bằng API Windows Phone 7?
- 8. Gửi email có tệp đính kèm trong Ruby
- 9. đính kèm video cục bộ bằng UIActivityViewController
- 10. Cách gửi email có tệp đính kèm trong số
- 11. Gửi tệp đính kèm iphone qua email theo chương trình
- 12. Gửi email có tệp đính kèm tệp PDF bằng cách sử dụng PHP
- 13. Gửi email có tệp đính kèm Khách hàng Agnostic
- 14. Android: Gửi e-mail có tệp đính kèm tự động trong nền
- 15. Android: có thể đính kèm tệp vào email mà không cần ghi vào SD không?
- 16. Làm cách nào để lưu tệp đính kèm email vào máy chủ bằng PHP?
- 17. Mục đích Android: Gửi email có tệp đính kèm
- 18. Làm cách nào để gửi email có tệp đính kèm bằng SmtpClient.SendAsync?
- 19. Tệp đính kèm Zend Mail 2.0
- 20. python không thể gửi tệp đính kèm qua email
- 21. Cách đính kèm nhiều tệp vào một email bằng JavaMail?
- 22. Email file đính kèm
- 23. Thư Java, gửi nhiều tệp đính kèm không hoạt động
- 24. Gửi email bằng email có đính kèm không phải lúc nào cũng hoạt động
- 25. Ví dụ về việc gửi email có tệp đính kèm qua Amazon trong Java
- 26. tải xuống tệp đính kèm thư bằng Java
- 27. gửi email có tệp đính kèm bằng cách sử dụng php
- 28. Gửi email không đồng bộ với tệp đính kèm trong Django
- 29. Cách lưu tệp đính kèm email trong C#
- 30. Cách gửi email có tệp đính kèm bằng cách sử dụng GmailSender trong android
Bạn có thể gửi email w/tập tin đính kèm, và sau đó xóa địa phương f sau đó? – weiji