0

テスト用にディレクトリ「bar」に2つのファイルがあります。以下のコードから、そのディレクトリ内のすべてのファイルを電子メールの添付ファイルとして送信することを想定しています。問題は、それらを送信すると、電子メールに 1 つのファイルの重複が表示されることです。以前はテストのために正しく動作していましたが、何を変更したか覚えていません。

私のコードの何が問題なのか、またはディレクトリ内のすべてのファイルを送信する代わりに、電子メールで1つのファイルを複数回受信する理由を誰かが認識していますか?

これが私のコードです:

        multipart = new MimeMultipart();
        multipart.addBodyPart(messageBodyPart);

        File f = new File("C:\\foo\\bar");
        File[] attachments = f.listFiles();

         //email with attachments (if any)
        for(int i = 0; i < f.listFiles().length - 1; i++){
            DataSource fileDataSource = new FileDataSource(attachments[i]);
            messageBodyPart.setDataHandler(new DataHandler(fileDataSource));
            messageBodyPart.setFileName(attachments[i].getName());
            multipart.addBodyPart(messageBodyPart);
            }

        message.setContent(multipart);
        message.setSentDate(new Date());

        Transport.send(message);
4

1 に答える 1

3

1 つずれているエラーがあります。ループを次のいずれかにする必要があります。

for (int i = 0; i < f.listFiles().length; i++){

また

for (int i = 0; i <= f.listFiles().length -1; i++){

また、次の2行があります

multipart.addBodyPart(messageBodyPart);

これが、最初のファイルを 2 回含む bodypart を持つ理由です。

于 2012-04-05T11:23:25.787 に答える