2012-08-30 58 views
2

我已經開始使用JAVA郵件API實現郵件模塊。我正在使用SMTPMessage,以便我可以獲得郵件的傳遞狀態。問題是,我得到了wrong mail addresses在Java Mail API中將'郵件成功發送'到錯誤的郵件地址

成功輸送報告這就是我所做的發送消息

SMTPMessage smtpMsg=new SMTPMessage(message); 
      smtpMsg.setReturnOption(SMTPMessage.RETURN_HDRS); 
      smtpMsg.setNotifyOptions(SMTPMessage.NOTIFY_SUCCESS |SMTPMessage.NOTIFY_FAILURE); 
      Transport transport = session.getTransport("smtp"); 
      //attach the listeners for the connection and transmission 
      transport.addConnectionListener(this); 
      transport.addTransportListener(this); 
      transport.connect(); 
      //connect to the server and send the message 
      transport.sendMessage(smtpMsg, smtpMsg.getAllRecipients()); 

由於我的類實現TransportListener,ConnectionListener,我重視的聽衆作爲

public void opened(ConnectionEvent e) { 
    System.out.println("Connection opened"); 
    } 
    public void disconnected(ConnectionEvent e) { 
    System.out.println("Connection disconnected"); 
    } 
    public void closed(ConnectionEvent e) { 
    System.out.println("Connection closed"); 
    } 

    public void messageDelivered(TransportEvent e) { 
     System.out.println("Message delivered for:"); 
     if (e != null) { 
      Address[] a = e.getValidSentAddresses(); 
     if (a != null && a.length > 0) { 
      for (int i = 0; i < a.length; i++) { 
       System.out.println(((InternetAddress) a[i]).getAddress()); 
      } 
     } 
     System.out.println(""); 
     } 
    } 

    public void messageNotDelivered(TransportEvent e) { 
     System.out.println("Message not delivered for:"); 
     if (e != null) { 
      Address[] a = e.getValidUnsentAddresses(); 
     if (a != null && a.length > 0) { 
      for (int i = 0; i < a.length; i++) { 
       System.out.println(((InternetAddress) a[i]).getAddress()); 
      } 
     } 
     System.out.println(""); 
     } 
    } 

    public void messagePartiallyDelivered(TransportEvent e) { 
     System.out.println("These addresses are invalid:"); 
     if (e != null) { 
      Address[] a = e.getInvalidAddresses(); 
     if (a != null && a.length > 0) { 
      for (int i = 0; i < a.length; i++) { 
       System.out.println(((InternetAddress) a[i]).getAddress()); 
      } 
     } 
     System.out.println(""); 
     } 
    } 

這是在博客的oe中建議。這裏有什麼問題?我怎樣才能交貨狀態爲錯誤的郵件IDS

我這是如何初始化消息

MimeMessage message=new MimeMessage(session); 
     //set the mail sender address 
     message.setFrom(new InternetAddress(userName)); 
     //set the recipient addresses 
     message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toAddr)); 
     //set subject of the mail 
     message.setSubject(subject); 
     //Set the body of the message 
     message.setText(body); 
+0

是郵件地址中的語法錯誤或者地址不存在的假? –

+0

郵件ID不存在 –

+0

你使用什麼樣的交通工具? –

回答

相關問題