1

次のように、Apache共通メールライブラリを使用してメールを送信しています

// Create the attachment
   EmailAttachment attachment = new EmailAttachment();
   attachment.setPath("mypictures/john.jpg");
   attachment.setDisposition(EmailAttachment.ATTACHMENT);
   attachment.setDescription("Picture of John");
   attachment.setName("John");

// Create the email message
   MultiPartEmail email = new MultiPartEmail();
   email.setHostName("mail.myserver.com");
   email.addTo("jdoe@somewhere.org", "John Doe");
   email.setFrom("me@apache.org", "Me");
   email.setSubject("The picture");
   email.setMsg("Here is the picture you wanted");

// add the attachment
   email.attach(attachment);

// send the email
   email.send();

ファイルを添付して送信するまでプログレスバーを表示したい..

どうすればいいですか?

4

1 に答える 1

0

commons-email からコールバックを取得して、どのくらいのデータが既に変換されているかを知る方法がわかりません。そのため、apache commons の電子メール自体にハッキングしない限り、ライブラリ自体から通知を受け取ることはありません。

これを「エミュレート」する他の唯一の方法は、転送に通常かかる時間、つまり通常1秒間に転送するバイト数についての知識を構築し、これを進行状況ダイアログの表示に使用することです。ただし、転送速度が時間の経過とともに大きく変化する場合や、アプリケーションがさまざまなネットワーク接続タイプで使用されている場合は、当然、プログレス バーの情報が不正確になる可能性があります。

于 2013-02-15T08:53:21.017 に答える