0

教育目的で、ファイルとして保存せずに、Jav Mail を使用して、byte[] を直接送信しようとしています。

私はこれを持っています:

        Properties props = new Properties();
        props.put("mail.debug", "true");
        props.put("mail.transport.protocol", "smtp");
        props.put("mail.smtp.host", SMTP_HOST_NAME);
        props.put("mail.smtp.auth", "true");            
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.port", "587");                 

        Authenticator auth = new SMTPAuthenticator();

        Session mailSession = Session.getDefaultInstance(props, auth);
        Transport transport = mailSession.getTransport();

        MimeMessage message = new MimeMessage(mailSession);
        message.setSubject (asunto, "text/plain");
        message.setContent(mensaje, "text/plain");
        message.setSentDate (new java.util.Date());
        message.setFrom(new InternetAddress(SMTP_AUTH_USER));

        InternetAddress address[] = new InternetAddress[destino.length];
        for( int i = 0; i < destino.length; i++ ) {
            address[i] = new InternetAddress ( destino[i] );
        }
        message.setRecipients (Message.RecipientType.TO, address);

        if (adjuntos){
            MimeBodyPart mbp = new MimeBodyPart();
            mbp.setFileName("AttachedFile");
            DataSource ds = new ByteArrayDataSource(archive, MIME);
            mbp.setDataHandler(new DataHandler(ds));
        }           

        transport.connect();
        transport.sendMessage(message,message.getRecipients(Message.RecipientType.TO));

        transport.close();

しかし、私がメールを受け取ったとき、添付ファイルはありません。私は専門家ではありませんが、MimeBodyPart はメッセージに「添付」されていないと思います。

前もって感謝します!

4

1 に答える 1

1

私はこれを見つけて、私のために働きます:)ありがとう!

        Multipart mp = new MimeMultipart();
        mp.addBodyPart(mbp);
        message.setContent(mp);
于 2013-06-16T21:13:52.380 に答える