уведомление о вложении java почты - PullRequest
1 голос
/ 25 октября 2011

Я отправляю почту с вложением, но проблема, с которой я сталкиваюсь, заключается в том, что ..... Я хочу показать пользователю, что "Сейчас он прикрепляется" ..... "Теперь он отправляет почту" ... такое уведомление , Я использую Transport .send (msg), он сначала прикрепляет вложение, а затем отправляет почту, поэтому я не могу различить, что происходит в фоновом режиме.

Я использую session.debug (true), он уведомляет меня обо всем в консоли, но мне нужен какой-то триггер или обратный вызов, который говорит, что сейчас подключается, теперь отправляет вот так ....

Вот мой код ..

public void send1() {

Properties props = new Properties();
props.put("mail.smtp.host", email.getSmtpServer());
props.put("mail.smtp.port", email.getSmtpPort());
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

try {
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getInstance(props, auth);
session.setDebug(true);
emailMessage = new MimeMessage(session);
emailMessage.setSubject(email.getEmailSubject());



if(email.getAttachedFile().toString().trim().equals("")){
emailMessage.setText(email.getEmailBody());
}else{
attachFile(email.getAttachedFile());
}

emailMessage.addRecipient(Message.RecipientType.TO, new          InternetAddress(email.getEmailTo(),"XYZ"));

Transport transport=session.getTransport("smtp");

transport.addConnectionListener(new EmailTransportListener(callBackObject));
transport.addTransportListener(new EmailTransportListener(callBackObject));

transport.connect();

InternetAddress[] a=new InternetAddress[1];
a[0]=new InternetAddress("abc@gmail.com");
transport.sendMessage(emailMessage,a);

} catch (Exception mex) {
mex.printStackTrace();
}
}

Здесь я пишу свой код вложения .....

private int attachFile(File file){
try {

// Create the message part
BodyPart messageBodyPart = new MimeBodyPart();

// Fill the message

messageBodyPart.setText(email.getEmailBody());

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

// Part two is attachment
messageBodyPart = new MimeBodyPart();

DataSource source = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName("greetings");
multipart.addBodyPart(messageBodyPart);

// Put parts in message
emailMessage.setContent(multipart);

} catch (MessagingException e) {

}
return 1;
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...