2016-12-29 25 views
0

Java MailApiを使用していますが、e-mail sent successfullyコールバックを追加したいと思います。Java SendMail Apiのコールバック成功

私はSMTPAddressSucceededExceptionについてhereを読んだ:

mail.smtp.reportsuccessプロパティがtrueの場合、この例外はしてSendFailedExceptionをオフに連鎖しています。

だから私は今、2つの例外があります。より多くの一般的な例外 'のjava.lang.Exception' は で、ある

public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception, SMTPAddressSucceededException { 
     try { 
      MimeMessage message = new MimeMessage(session); 
      DataHandler handler = new DataHandler(new ByteArrayDataSource(
        body.getBytes(), "text/plain")); 
      message.setSender(new InternetAddress(sender)); 
      message.setSubject(subject); 
      message.setDataHandler(handler); 
      BodyPart messageBodyPart = new MimeBodyPart(); 
      messageBodyPart.setText(body); 
      _multipart.addBodyPart(messageBodyPart); 

      // Put parts in message 
      message.setContent(_multipart); 
      if (recipients.indexOf(',') > 0) 
       message.setRecipients(Message.RecipientType.TO, 
         InternetAddress.parse(recipients)); 
      else 
       message.setRecipient(Message.RecipientType.TO, 
         new InternetAddress(recipients)); 
      Transport.send(message); 
     } catch (SMTPAddressSucceededException e){ 
     Log.i("MAIL", "SMTAddressSucceededException"); 
     } catch (Exception e) { 
     Log.i("MAIL", "sendMail failed"); 
     } 
    } 
    } 

問題を与えます既にリストをスローする

質問:肯定的なコールバックが、否定的なコールバックのサブオプションとして見られるのはなぜですか? メッセージの送信に失敗した場合と成功した場合の違いを教えてください。

答えて

0

例外なしでTransport.sendメソッドから返されたメッセージは、SMTPAddressSucceededExceptionと同様に、メッセージがメールサーバーに正常に配信されたことを通知します。例外はより詳細な情報を提供する場合もありますが、必要なものがすべて成功した場合は、メソッドからの戻りがはるかに簡単です。いずれの方法も、メッセージが受信者に正常に配信されたかどうかを示していません。

関連する問題