小编Jam*_*ett的帖子

使用现有的InputStream作为附件内容,使用javax.mail发送电子邮件

是否可以javax.mail使用"现有" InputStream发送电子邮件附件内容的电子邮件?

目前我正在构建如下电子邮件:

final MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("Subject line");

final Multipart multipartContent = new MimeMultipart();

    final MimeBodyPart textPart = new MimeBodyPart();
    textPart.setText("Message body");
    multipartContent.addBodyPart(textPart);

    final MimeBodyPart attachmentPart = new MimeBodyPart();
    final DataSource source = new InputStreamDataSource("text/plain", "test.txt", new ByteArrayInputStream("CONTENT INPUT STREAM".getBytes()));
    attachmentPart.setDataHandler(new DataHandler(source));
    attachmentPart.setFileName("text.txt");
    multipartContent.addBodyPart(attachmentPart);

message.setContent(multipartContent);
Run Code Online (Sandbox Code Playgroud)

InputStreamDataSource 实施如下:

public class InputStreamDataSource implements DataSource
{
    private final String contentType;
    private final String name;
    private final InputStream inputStream;

    public InputStreamDataSource(String contentType, String …
Run Code Online (Sandbox Code Playgroud)

java jakarta-mail javax.activation

6
推荐指数
1
解决办法
6920
查看次数

标签 统计

jakarta-mail ×1

java ×1

javax.activation ×1