Anzeige fehlgeschlagener Mails als ResultSet

ramzymamzy

Mitglied
Hallo,

ich möchte die fehlgeschlagenen Mails aus einer Datenbank ausgeben!
Dazu habe ich einen CLOB in einen String umformatiert und möchte jetzt über subString nur einen bestimmten Teil dieses Strings ausgeben! Der Strart soll bei "To:" sein und die Endausgabe bei "Subject:" oder "Mime-Version:"

Mein jetziger code:

Code:
	public ResultSet showFailedMails(Connection theConnection){
		ResultSet rs = null;
		
		try{
	      Statement stmt = theConnection.createStatement();
		  rs = stmt.executeQuery("SELECT MIMEBODY FROM MAIL_QUEUE WHERE STATUS LIKE 'failed'");
		  ResultSetMetaData rsmd = rs.getMetaData();
		  
		  while (rs.next()) {
			  StringWriter sWriter = new StringWriter();
			  BufferedReader br = new BufferedReader(rs.getCharacterStream("MIMEBODY"));
			  String str;

			while ((str = br.readLine()) != null) {
			   sWriter.write(str);
			   String suchString = sWriter.toString();
			   int suchWort =  suchString.indexOf("To:");
			   int nextWort = suchString.indexOf("Subject:");
			   if (nextWort < 0)
				   nextWort = suchString.indexOf("Mime-Version:");
			   String ergebnis = suchString.substring(suchWort,nextWort);
			   System.out.println(suchWort);
			   System.out.println(nextWort);
			   System.out.println(" MIMEBODY: " + ergebnis);
			}				
			 
		  }
		  
		} 		
		catch(SQLException e){
		}
		catch (IOException e) {
		  e.printStackTrace();
		}
		return rs;	
	}

bekomme diese fehlermeldung:

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java(Compiled Code))
at Result.showFailedMails(Result.java:126)
at DBConnect.main(DBConnect.java:25)
Exception in thread "main"

Beispiel Mail:

Message-ID: <540143977.1101987520936.JavaMail.zmbf0wm@c032032127>
From: TEST_mail@abc.com
To: Vorname Nachname <null>
To: fsd@bfg.com
Subject: bestellung
Mime-Version: 1.0
Content-Type:blabla;

Kann jemand helfen?
 
Zurück