Unterschiedliche mails (Daten aus JTable) schicken

Status
Nicht offen für weitere Antworten.
L

Louis2

Gast
Hallo,

ich habe eine JTable mit Daten drin und email Adressen: (ID steht für verschiedene Kunden)

ID | Name | Produkt | Email |
1 | a | d | test@ |
1 | a | d | test@ |
2 | c | e | demo@ |
2 | c | e | demo@ |


Nun verschicke ich mails, d.h mit den Daten, d.h eine Schleife geht die mail Adressen durch und bisher werden alle Daten in eine JTextArea
gespeichert und dann jedes mal an jede mail geschickt (würde hier heißen 4 mails mit alle Daten drin).

Was ich aber haben möchte, ist dass mit den Daten oben nur 2 mails geschickt werden, und zwar eine mail an test@ mit nur die Daten die diese mail Add haben (ID 1)
und eine andere mail an demo@ (das gleich).

Es sollen nicht wie jetzt in alen mails alle Daten stehen, sondern nur die Daten die diese mail Add haben.

Wie geht das? Ich muss halt irgendwie überprüfen ob sich die ID oder mail geändert hat oder?

Mein Code bisher:
Code:
public void actionPerformed(ActionEvent e) 
    {
        if (e.getSource() == sendButton) 
        { 
            int[] selectedColumns = table.getSelectedColumns();
            int len1 = table.getRowCount()-1;
               	    
            for (int i=0; i<=len1; i++)
            {
                try
                {
                    main.appendSubject("Status Kundenaufträge");
                    for (int x=0; x<=table.getRowCount()-1;x++)
                    {
                        for (int y=0; y<=selectedColumns.length-1;y++)
                        {
                            Object yourValue = table.getModel().getValueAt(x, selectedColumns[y]); 
                            main.appendText(table.getColumnName(selectedColumns[y]) + ": " + yourValue + "\n"); 
                        }
                        main.appendText("\n");
                    }
                    main.show(); 
                    
                    main.toField.setText(outlistemail);
                    
                    Properties props=new Properties();
                    props.put("mail.host", main.hostField.getText());
                
                    Session mailConnection=Session.getInstance(props,null);
                    final Message msg=new MimeMessage(mailConnection);
                
                    Address to=new InternetAddress(main.toField.getText());
                    Address from=new InternetAddress(main.fromField.getText());
                
                    msg.setContent(main.message.getText(), "text/plain");
                    msg.setFrom(from);
                    msg.setRecipient(Message.RecipientType.TO, to);
                    msg.setSubject(main.subjectField.getText());
                
                    Runnable r = new Runnable()
                    {
                        public void run()
                        {
                            try
                            {                            
                                Transport.send(msg);
                            }
                            catch (Exception e)
                            {
                                e.printStackTrace();
                            }
                        }
                    };
                Thread t = new Thread(r);
                t.start();
                
                main.message.setText("");
                main.subjectField.setText("");
                }
                catch (Exception e1)
                {
                    e1.printStackTrace();                
                }
                main.setVisible(false);
            }
        }
    }
 

KSG9|sebastian

Top Contributor
vorschlag:

Du schreibst dir ne Klasse die von Message erbt. Du fügst Methoden hinzu um nen Datensatz (in deinem fall: id, name, produkt) an die mail anzuhängen. in der msg methode musst du dann eben die entsprechenden methoden überschreiben

dann gehst du die jtable durch, so wie du es schon hattest. packst die einträge in eine eigene struktur/klasse und nimmst als key die email addy

davor überprfüst du die email-addy des aktuellen datensatzes schon vorhanden ist. wenn ja: neuer datensatz an mail anhängen
wenn nein: mail neu erzeugen.

die ganzen mails musst du dir halt in ner struktur speichern und später durchgehen zum senden

es gibt sicher auch einfachere möglichkeiten..mir fällt aber nix ein..bin viel zu müde
 
L

Louis2

Gast
Hmmm ist mir etwas zu kompliziert, ich hatte eher an eine einfache Abfrage if(aktuell=nächstes) dann...

Aber da komme ich im Moment auch nicht weiter...
 
L

Louis2

Gast
Also mein Code sieht wie folgt aus.
Bei der FOR-Schleife geht er jede Zeile durch in der Tabelle und führt was danach kommt aus, heißt schickt die mail auch weg.
Nun muss ich ja überprüfen ob der aktuelle Wert von "table.getModel().getValueAt(i,0);" (Spalte 0 = KundenNo) auch den Wert von Zeile 2 entspricht.
Wenn ja, heißt es ja, dass es der selbe Kunde ist und dann muss nur eine mail geschickt werden mit den Infos die mit der "KundenNo" übereinstimmen
in HTML heißt mit x Zeilen wenn xmal KundenNo gleichen Wert hat).
Und wenn es nicht mehr der selbe Wert ist, dann muss das Prog. wieder die Tabelle durchsuchen und das selbe machen. Ab suchen ab Position vom letzten i natürlich, nicht von vorne!
Wie kriege ich das hin, bzw. den aktuelle und nächsten Wert IF((table.getModel().getValueAt(i,0))=(table.getModel().getValueAt((i+1),0))) geht ja schonmal nicht...
Code:
if (e.getSource() == sendButton) 
            { 
                int[] selectedColumns = table.getSelectedColumns();
                int len1 = table.getRowCount()-1;
                try
                {
                    FileWriter dateiStream = new FileWriter("C:/Dokumente und Einstellungen/Lempert/Desktop/Project/Log" + time + ".txt"); 
                    PrintWriter ausgabe = new PrintWriter(dateiStream);
                    
                    for (int i=0; i<=len1; i++)
                    {
                        Object customernovalue = table.getModel().getValueAt(i,0);
                        try
                        {
                            String htmltable="<html><body><table border='1' cellpadding='0' cellspacing='0'>";
                            htmltable=htmltable + "<tr>";
                            for (int y=0; y<=selectedColumns.length-1;y++)
                            {
                                htmltable=htmltable + "<td width='175px'><div align='left'>[b]" + table.getColumnName(selectedColumns[y]) + "[/b]</div></td>";
                            }
                            htmltable=htmltable + "</tr><tr>";
                            
                            /*for (int x=0; x<=table.getRowCount()-1;x++)
                            {*/
                            for (int y=0; y<=selectedColumns.length-1;y++)
                            {
                                main.appendSubject("TESTMAIL INFOR: Status Kundenauftraege");
                                Object yourValue = table.getModel().getValueAt(i, selectedColumns[y]); 
                                htmltable=htmltable+ "<td width='175px'><div align='left'>" + yourValue + "</div></td>";
                                main.appendText(table.getColumnName(selectedColumns[y]) + ": " + yourValue + System.getProperty("line.separator"));
                            }                            
                                                        
                            main.appendText(System.getProperty("line.separator"));
                            
                            htmltable=htmltable + "</tr></table></body></html>";
                            textmessage=getHTMLString(htmltable);
                            //}
                            main.show(); 
                            main.appendToEmail(table.getModel().getValueAt(i, 2)+"");
                            //main.appendToEmail(getWert());
                    
                            Properties props=new Properties();
                            props.put("mail.host", main.hostField.getText());
                
                            Session mailConnection=Session.getInstance(props,null);
                            final Message msg=new MimeMessage(mailConnection);
                
                            Address to=new InternetAddress(main.toField.getText());
                            Address bcc=new InternetAddress(main.toBCCField.getText());
                            Address from=new InternetAddress(main.fromField.getText());
                
                            msg.setContent(textmessage,"text/html; charset=ISO-8859-1");
                            msg.setFrom(from);
                            msg.setRecipient(Message.RecipientType.TO, to);
                            msg.setSubject(main.subjectField.getText());
                            msg.setRecipient(Message.RecipientType.BCC, bcc);
                    
                            currentDate = new java.util.Date();                 
                            ausgabe.println("Mail" + (i+1) + " / " + currentDate + System.getProperty("line.separator") + "Host: " + main.hostField.getText() + " / " + "From: " + main.fromField.getText() + " / " + "To: " + main.toField.getText() + " / " + "BCC: " + main.toBCCField.getText() + " / " + "Subject: " + main.subjectField.getText() + System.getProperty("line.separator") + main.message.getText() + System.getProperty("line.separator")); 
                            ausgabe.println(System.getProperty("line.separator"));
                                                  
                            Runnable r = new Runnable()
                            {
                                public void run()
                                {
                                    try
                                    {                               
                                        Transport.send(msg);
                                    }
                                    catch (Exception e)
                                    {
                                        e.printStackTrace();
                                    }
                                }
                            };
                            Thread t = new Thread(r);
                            t.start();
                
                            main.message.setText("");
                            main.subjectField.setText("");
                        }
                        catch (Exception e1)
                        {
                            e1.printStackTrace();                
                        }
                        main.setVisible(false);
                    }
                    ausgabe.close();
                }
                catch (Exception e1)
                {
                }
            }
 

KSG9|sebastian

Top Contributor
1. lager den ganzen code in ne separate methode aus, die als übergabeparameter die zeilennummer hat, bei der er beginnen soll

private sentMail(int from)..

for(int i=from; i<...; i++)

Wenn die Mail dann geschickt wurde ruf die funktion wieder auf, jedoch mit der aktuellen Zeilennummer + 1, ungefähr so

Loop i = from to anzahlZeilen
Zeile lesen
Überprüfen ob aktuell = nächstes
Mail senden
Funktion wieder aufrufen mit aktueller Zeilennummer + 1
Next
 
L

Louis2

Gast
So etwa in der Art?
Es gibt 2 Fehler noch:
1. Variable time kann nicht erkannt werden von der Methode actionPerformed(ActionEvent e)
2. Beim IF... gibt es Probleme da Object

Code:
public void actionPerformed(ActionEvent e) 
    {
        formatter = new SimpleDateFormat ("kk_mm_ss", Locale.getDefault());
        String time =formatter.format(new java.util.Date()); 
        if (main.LogSchalter.equals("NO") | main.LogSchalter.equals("No") | main.LogSchalter.equals("no"))
        {
            if (e.getSource() == sendButton) 
            { 
                try
                {
                    sendmail(0);
                }    
                catch (Exception e1)
                {
                }
            }
        }
}

Code:
public void sendmail(int beginn)
    {
        int[] selectedColumns = table.getSelectedColumns();
        int len1 = table.getRowCount()-1;
        FileWriter dateiStream = new FileWriter("C:/Dokumente und Einstellungen/Lempert/Desktop/Project/Log" + time + ".txt"); // Variable time (s.o) kann nicht erkannt werden
        PrintWriter ausgabe = new PrintWriter(dateiStream);
        for (int i=beginn; i<=len1; i++)
        {
            Object customernovalue = table.getModel().getValueAt(i,0);
            Object customernovalue2 = table.getModel().getValueAt((i+1),0);
            if (customernovalue=customernovalue2) //Fehler, da Object type
            {
                try
                {
                    String htmltable="<html><body><table border='1' cellpadding='0' cellspacing='0'>";
                    htmltable=htmltable + "<tr>";
                    for (int y=0; y<=selectedColumns.length-1;y++)
                    {
                        htmltable=htmltable + "<td width='175px'><div align='left'>[b]" + table.getColumnName(selectedColumns[y]) + "[/b]</div></td>";
                    }
                        htmltable=htmltable + "</tr><tr>";
                            
                        /*for (int x=0; x<=table.getRowCount()-1;x++)
                        {*/
                        for (int y=0; y<=selectedColumns.length-1;y++)
                        {
                            main.appendSubject("TESTMAIL INFOR: Status Kundenauftraege");
                            Object yourValue = table.getModel().getValueAt(i, selectedColumns[y]); 
                            htmltable=htmltable+ "<td width='175px'><div align='left'>" + yourValue + "</div></td>";
                            main.appendText(table.getColumnName(selectedColumns[y]) + ": " + yourValue + System.getProperty("line.separator"));
                        }                            
                                                      
                        main.appendText(System.getProperty("line.separator"));
                            
                        htmltable=htmltable + "</tr></table></body></html>";
                        textmessage=getHTMLString(htmltable);
                        //}
                        main.show(); 
                        main.appendToEmail(table.getModel().getValueAt(i, 2)+"");
                        //main.appendToEmail(getWert());
                    
                        Properties props=new Properties();
                        props.put("mail.host", main.hostField.getText());
                
                        Session mailConnection=Session.getInstance(props,null);
                        final Message msg=new MimeMessage(mailConnection);
                
                        Address to=new InternetAddress(main.toField.getText());
                        Address bcc=new InternetAddress(main.toBCCField.getText());
                        Address from=new InternetAddress(main.fromField.getText());
                
                        msg.setContent(textmessage,"text/html; charset=ISO-8859-1");
                        msg.setFrom(from);
                        msg.setRecipient(Message.RecipientType.TO, to);
                        msg.setSubject(main.subjectField.getText());
                        msg.setRecipient(Message.RecipientType.BCC, bcc);
                    
                        currentDate = new java.util.Date();                 
                        ausgabe.println("Mail" + (i+1) + " / " + currentDate + System.getProperty("line.separator") + "Host: " + main.hostField.getText() + " / " + "From: " + main.fromField.getText() + " / " + "To: " + main.toField.getText() + " / " + "BCC: " + main.toBCCField.getText() + " / " + "Subject: " + main.subjectField.getText() + System.getProperty("line.separator") + main.message.getText() + System.getProperty("line.separator")); 
                        ausgabe.println(System.getProperty("line.separator"));
                                                  
                        Runnable r = new Runnable()
                        {
                            public void run()
                            {
                                try
                                {                               
                                    Transport.send(msg);
                                }
                                catch (Exception e)
                                {
                                    e.printStackTrace();
                                }
                            }
                        };
                        Thread t = new Thread(r);
                        t.start();
                
                        main.message.setText("");
                        main.subjectField.setText("");
                       
                }
                catch (Exception e1)
                {
                    e1.printStackTrace();                
                }
                main.setVisible(false);
            }
                ausgabe.close();
                sendmail(beginn+1);
        }
    }
 

KSG9|sebastian

Top Contributor
1) Case von Objekt in den jeweiligen typ den du brauchst oder einfacher: überschreib die equals methode in der customer-klasse

Code:
public boolean equals(Object o){
   if(o instance of DeineKlasse){
      DeineKlasse k = (DeineKlasse)o;
      return (vorname == k.getVorname() && nachname == k.getNachname());  //Hier musst du die Bedingung 
//erweitern, dass alle Felder abgefragt werden
   }
   else{
      return false;
   }

}

2) Übergib "time" an die funktion oder leg es als statische, finale Variable in der Klasse fest, da es eh immer gleich ist
 
L

Louis2

Gast
@KSG9|plak: Ich meinte die Meldung bei IF(customernovalue=customernovalue2) habe es jetzt in IF(customernovalue==customernovalue2) geändert.
Das mit dem time habe ich jetzt in der Methode gleich mit reingepackt.

Nun kommen keine Meldungen mehr beim compilieren, aber wenn ich dann auf dem Button drücke passiert nichts mehr, wieso? Log Dateien werden in Massen ohne Inhalt erzeugt... irgendwas läuft schief beim abrufen der Methode... :?

Code:
public void actionPerformed(ActionEvent e) 
{
        if (main.LogSchalter.equals("NO") | main.LogSchalter.equals("No") | main.LogSchalter.equals("no"))
        {
            if (e.getSource() == sendButton) 
            { 
                 sendmail(0);     
            }
        }
}

Code:
public void sendmail(int beginn)
    {
        int[] selectedColumns = table.getSelectedColumns();
        int len1 = table.getRowCount()-1;
        formatter = new SimpleDateFormat ("kk_mm_ss", Locale.getDefault());
        String time =formatter.format(new java.util.Date()); 
        try
        {
        FileWriter dateiStream = new FileWriter("C:/Dokumente und Einstellungen/Lempert/Desktop/Project/Log" + time + ".txt"); 
        PrintWriter ausgabe = new PrintWriter(dateiStream);
        
        for (int i=beginn; i<=len1; i++) // Variable beginn
        {
            Object customernovalue = table.getModel().getValueAt(i,0);
            Object customernovalue2 = table.getModel().getValueAt((i+1),0);
            if (customernovalue==customernovalue2) // Überprüfung
            {
                try
                {
                    String htmltable="<html><body><table border='1' cellpadding='0' cellspacing='0'>";
                    htmltable=htmltable + "<tr>";
                    for (int y=0; y<=selectedColumns.length-1;y++)
                    {
                        htmltable=htmltable + "<td width='175px'><div align='left'>[b]" + table.getColumnName(selectedColumns[y]) + "[/b]</div></td>";
                    }
                        htmltable=htmltable + "</tr><tr>";
                            
                        /*for (int x=0; x<=table.getRowCount()-1;x++)
                        {*/
                        for (int y=0; y<=selectedColumns.length-1;y++)
                        {
                            main.appendSubject("TESTMAIL INFOR: Status Kundenauftraege");
                            Object yourValue = table.getModel().getValueAt(i, selectedColumns[y]); 
                            htmltable=htmltable+ "<td width='175px'><div align='left'>" + yourValue + "</div></td>";
                            main.appendText(table.getColumnName(selectedColumns[y]) + ": " + yourValue + System.getProperty("line.separator"));
                        }                            
                                                      
                        main.appendText(System.getProperty("line.separator"));
                            
                        htmltable=htmltable + "</tr></table></body></html>";
                        textmessage=getHTMLString(htmltable);
                        //}
                        main.show(); 
                        main.appendToEmail(table.getModel().getValueAt(i, 2)+"");
                        //main.appendToEmail(getWert());
                    
                        Properties props=new Properties();
                        props.put("mail.host", main.hostField.getText());
                
                        Session mailConnection=Session.getInstance(props,null);
                        final Message msg=new MimeMessage(mailConnection);
                
                        Address to=new InternetAddress(main.toField.getText());
                        Address bcc=new InternetAddress(main.toBCCField.getText());
                        Address from=new InternetAddress(main.fromField.getText());
                
                        msg.setContent(textmessage,"text/html; charset=ISO-8859-1");
                        msg.setFrom(from);
                        msg.setRecipient(Message.RecipientType.TO, to);
                        msg.setSubject(main.subjectField.getText());
                        msg.setRecipient(Message.RecipientType.BCC, bcc);
                    
                        currentDate = new java.util.Date();                 
                        ausgabe.println("Mail" + (i+1) + " / " + currentDate + System.getProperty("line.separator") + "Host: " + main.hostField.getText() + " / " + "From: " + main.fromField.getText() + " / " + "To: " + main.toField.getText() + " / " + "BCC: " + main.toBCCField.getText() + " / " + "Subject: " + main.subjectField.getText() + System.getProperty("line.separator") + main.message.getText() + System.getProperty("line.separator")); 
                        ausgabe.println(System.getProperty("line.separator"));
                                                  
                        Runnable r = new Runnable()
                        {
                            public void run()
                            {
                                try
                                {                               
                                    Transport.send(msg);
                                }
                                catch (Exception e)
                                {
                                    e.printStackTrace();
                                }
                            }
                        };
                        Thread t = new Thread(r);
                        t.start();
                
                        main.message.setText("");
                        main.subjectField.setText("");
                       
                }
                catch (Exception e1)
                {
                    e1.printStackTrace();                
                }
                main.setVisible(false);
            }
                ausgabe.close();
                sendmail(beginn+1); // Nächste Zeile
        }
        }
        catch (Exception e1)
        {
        }
        
    }
 
L

Louis2

Gast
Also statt if (customernovalue==customernovalue2) habe ich if (customernovalue.equals(customernovalue2)) benutzt, jetzt geht er die in die Schleife rein und verschickt auch mails aber:
1. Immer noch eine mail für jede Zeile, und nicht wie ich wollte (wenn Zeile1&2 KundeNo 1600), dann beide ZeilenInfos in eine mail). Wieso macht er es immer noch nicht? Den "Senden" Teil muss ich ja aus der FOR-Schleife nehmen, richtig? Aber auch wenn ich ihn nach dem TRY..CATCH Block packe, wird immer nur eine mail geschickt ???:L
2. Es gibt 11 Zeile (0-10) len1=10 aber er stoppt das Prog. wenn er 10 erreicht hat nicht sondern macht weiter (ohne in die Schleife zu gehen). Macht er weiter, weil ich vor der FOR-Schleife die Log Datei erstelle?
 
L

Louis2

Gast
Ist mir ein Rätsel wieso er dauern eine mail verschickt (wie es aussieht macht er die Überprüfung nicht mit?)
Code:
 public void sendmail(int beginn)
    {
        int[] selectedColumns = table.getSelectedColumns();
        int len1 = table.getRowCount()-1;
        formatter = new SimpleDateFormat ("kk_mm_ss", Locale.getDefault());
        String time =formatter.format(new java.util.Date()); 
        try
        {
            FileWriter dateiStream = new FileWriter("C:/Dokumente und Einstellungen/Lempert/Desktop/Project/Log" + time + ".txt"); 
            PrintWriter ausgabe = new PrintWriter(dateiStream);
            for (int i=beginn; i<=len1; i++)
            {
                
                Object customernovalue = table.getModel().getValueAt(beginn,0);
                Object customernovalue2 = table.getModel().getValueAt((beginn+1),0);
            
                try
                {
                    String htmltable="<html><body><table border='1' cellpadding='0' cellspacing='0'>";
                    htmltable=htmltable + "<tr>";
                    for (int y=0; y<=selectedColumns.length-1;y++)
                    {
                        htmltable=htmltable + "<td width='175px'><div align='left'>[b]" + table.getColumnName(selectedColumns[y]) + "[/b]</div></td>";
                    }
                    htmltable=htmltable + "</tr><tr>";
                            
                    //for (int x=0; x<=table.getRowCount()-1;x++)
                    //{
                    if (customernovalue.equals(customernovalue2))
                    {
                        for (int y=0; y<=selectedColumns.length-1;y++)
                        {
                            main.appendSubject("TESTMAIL INFOR: Status Kundenauftraege");
                            Object yourValue = table.getModel().getValueAt(i, selectedColumns[y]); 
                            htmltable=htmltable+ "<td width='175px'><div align='left'>" + yourValue + "</div></td>";
                            main.appendText(table.getColumnName(selectedColumns[y]) + ": " + yourValue + System.getProperty("line.separator"));
                        }                            
                                                      
                        main.appendText(System.getProperty("line.separator"));
                            
                        htmltable=htmltable + "</tr></table></body></html>";
                        textmessage=getHTMLString(htmltable);
                        //}
                        main.show(); 
                        main.appendToEmail(table.getModel().getValueAt(i, 2)+"");
                        //main.appendToEmail(getWert());
                    
                        Properties props=new Properties();
                        props.put("mail.host", main.hostField.getText());
                
                        Session mailConnection=Session.getInstance(props,null);
                        final Message msg=new MimeMessage(mailConnection);
                
                        Address to=new InternetAddress(main.toField.getText());
                        Address bcc=new InternetAddress(main.toBCCField.getText());
                        Address from=new InternetAddress(main.fromField.getText());
                
                        msg.setContent(textmessage,"text/html; charset=ISO-8859-1");
                        msg.setFrom(from);
                        msg.setRecipient(Message.RecipientType.TO, to);
                        msg.setSubject(main.subjectField.getText());
                        msg.setRecipient(Message.RecipientType.BCC, bcc);
                    
                        currentDate = new java.util.Date();                 
                        ausgabe.println("Mail" + (i+1) + " / " + currentDate + System.getProperty("line.separator") + "Host: " + main.hostField.getText() + " / " + "From: " + main.fromField.getText() + " / " + "To: " + main.toField.getText() + " / " + "BCC: " + main.toBCCField.getText() + " / " + "Subject: " + main.subjectField.getText() + System.getProperty("line.separator") + main.message.getText() + System.getProperty("line.separator")); 
                        ausgabe.println(System.getProperty("line.separator"));
                                                  
                        Runnable r = new Runnable()
                        {
                            public void run()
                            {
                                try
                                {                               
                                    Transport.send(msg);
                                }
                                catch (Exception e)
                                {
                                    e.printStackTrace();
                                }
                            }
                        };
                        Thread t = new Thread(r);
                        t.start();
                
                        main.message.setText("");
                        main.subjectField.setText("");
                    }
                }
                catch (Exception e1)
                {
                    e1.printStackTrace();                
                }
                main.setVisible(false);
            }
            ausgabe.close();
            sendmail(beginn+1);
        }
        catch (Exception e1)
        {
        }
    }
 
L

Louis2

Gast
Also ich habe verschiedene sachen ausprobiert, fakt ist es geht immer noch nicht. Die Daten werden -falls sie überhaupt verschickt werden- zeilenweise verschickt also ich kriege die Daten die zu der selben mail Adresse geschickt werden müssen nicht in eine mail. Ich weiss nicht wo mein Denkfehler ist, was schief läuft.
Mit // habe ich Kommentare/Fragen eingefügt.

Problem: Eine JTable, Daten sortiert nach KundeNo, z.B 3 erste Zeilen KundenNo 1600 und noch Daten danach, ab 4 Zeile KundenNo 1650. Nun muss ich eine mail, die Infos der 3 ersten Zeilen rein, die mail einmal verschickt werden und dann die Überprüfung nach der KundenNo fortgesetzt werden und wieder verschicken usw...

Momentan sieht mein Code so aus:
Code:
public void sendmail(int beginn)
    {
        int[] selectedColumns = table.getSelectedColumns();
        int len1 = table.getRowCount()-1;
        formatter = new SimpleDateFormat ("kk_mm_ss", Locale.getDefault());
        String time =formatter.format(new java.util.Date()); 
        try
        {
            FileWriter dateiStream = new FileWriter("C:/Dokumente und Einstellungen/Lempert/Desktop/Project/Log" + time + ".txt"); 
            PrintWriter ausgabe = new PrintWriter(dateiStream);
            
            Object customernovalue = table.getModel().getValueAt(beginn,0);
            Object customernovalue2 = table.getModel().getValueAt((beginn+1),0); //Braucht man das? Die Schleife die danach kommt sollte es schon machen?
            
            for (int i=beginn; i<=len1; i++)
            {
                try
                {
                    String htmltable="<html><body><table border='1' cellpadding='0' cellspacing='0'>";
                    htmltable=htmltable + "<tr>";
                    for (int y=0; y<=selectedColumns.length-1;y++)
                    {
                        htmltable=htmltable + "<td width='175px'><div align='left'>[b]" + table.getColumnName(selectedColumns[y]) + "[/b]</div></td>";
                    }
                    htmltable=htmltable + "</tr><tr>";
                            
                    if (customernovalue.equals(customernovalue2)) //Wie kann ich im ersten Durchlauf schon den aktuellen und den nächsten Wert überprüfen??
                    {
                        System.out.println(customernovalue);
                        System.out.println(customernovalue2);                        
                        for (int y=0; y<=selectedColumns.length-1;y++)
                        {
                            main.appendSubject("TESTMAIL: Status Kundenauftraege");
                            Object yourValue = table.getModel().getValueAt(i, selectedColumns[y]); 
                            htmltable=htmltable+ "<td width='175px'><div align='left'>" + yourValue + "</div></td>";
                            main.appendText(table.getColumnName(selectedColumns[y]) + ": " + yourValue + System.getProperty("line.separator"));
                        }                            
                                                      
                        main.appendText(System.getProperty("line.separator"));
                            
                        htmltable=htmltable + "</tr></table></body></html>";
                        
                    }                   
                        main.message.setText("");
                        main.subjectField.setText("");
                }
                catch (Exception e1)
                {
                    e1.printStackTrace();                
                }
                main.setVisible(false);
            } // FOR Schleife beendet, nun kommt das versenden an sich
            main.show(); 
            main.appendToEmail(table.getModel().getValueAt(beginn, 2)+"");
            //main.appendToEmail(getWert());
                   
            Properties props=new Properties();
            props.put("mail.host", main.hostField.getText());
                
            Session mailConnection=Session.getInstance(props,null);
            final Message msg=new MimeMessage(mailConnection);
                
            Address to=new InternetAddress(main.toField.getText());
            Address bcc=new InternetAddress(main.toBCCField.getText());
            Address from=new InternetAddress(main.fromField.getText());
               
            msg.setContent(textmessage,"text/html; charset=ISO-8859-1");
            msg.setFrom(from);
            msg.setRecipient(Message.RecipientType.TO, to);
            msg.setSubject(main.subjectField.getText());
            msg.setRecipient(Message.RecipientType.BCC, bcc);
                    
            currentDate = new java.util.Date();                 
            ausgabe.println("Mail" + " / " + currentDate + System.getProperty("line.separator") + "Host: " + main.hostField.getText() + " / " + "From: " + main.fromField.getText() + " / " + "To: " + main.toField.getText() + " / " + "BCC: " + main.toBCCField.getText() + " / " + "Subject: " + main.subjectField.getText() + System.getProperty("line.separator") + main.message.getText() + System.getProperty("line.separator")); 
            ausgabe.println(System.getProperty("line.separator"));

            Runnable r = new Runnable()
            {
                public void run()
                {
                    try
                    {                               
                        Transport.send(msg);
                    }
                    catch (Exception e)
                    {
                        e.printStackTrace();
                    }
                }
            };
            Thread t = new Thread(r);
            t.start();
            ausgabe.close();
            
        }
        catch (Exception e1)
        {
        }
        sendmail(beginn+1); // Nach dem versenden geht das Prog die JTable zeilenweise weiter und vergleicht die nächsten Zeilen
    } 
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
OnDemand Unterschiedliche jar Dateien zusammen führen Allgemeine Java-Themen 8
rosima26 Unterschiedliche Werte bei return/print Allgemeine Java-Themen 12
M Warum gibt es Unterschiedliche Kommentar Zeichen Allgemeine Java-Themen 15
Y Java Methoden unterschiedliche Zahlenreihen Allgemeine Java-Themen 2
P Static Variable -> unterschiedliche Werte? Allgemeine Java-Themen 1
P Berechnungen: unterschiedliche Rundungsfehler bei Long? Allgemeine Java-Themen 3
M Zwei unterschiedliche JAR Dateien mit ANT erstellen Allgemeine Java-Themen 8
J unterschiedliche Dateiformate verarbeiten Allgemeine Java-Themen 7
J unterschiedliche Objekte, selbe getter und setter Allgemeine Java-Themen 15
G Methoden Unterschiedliche viele Parameter Allgemeine Java-Themen 17
A TXT File einlesen unterschiedliche Zeilenlänge Allgemeine Java-Themen 9
P Unterschiedliche Clone- Methoden Allgemeine Java-Themen 5
GianaSisters Klassen Unterschiedliche Zeiten bei DATE Allgemeine Java-Themen 6
G Input/Output URLDecoder.decode - Unterschiedliche Ergebnisse Windows / Linux Allgemeine Java-Themen 2
A md5 liefert unterschiedliche Testsummen? Allgemeine Java-Themen 4
M Unterschiedliche Java-Versionen Allgemeine Java-Themen 5
B hashtable für unterschiedliche Typen - mit Generics Allgemeine Java-Themen 8
S Zugriff auf unterschiedliche JREs Allgemeine Java-Themen 7
G Abstrakte Fabrik für unterschiedliche Signaturen? Allgemeine Java-Themen 7
L unterschiedliche Größe beim serialisieren eines Objektes! Allgemeine Java-Themen 6
W Unvollständige und unterschiedliche CharSets Allgemeine Java-Themen 3
U Transparent Buttons - unterschiedliche Java-Versionen Allgemeine Java-Themen 8
M unterschiedliche Betriebssysteme abfangen Allgemeine Java-Themen 3
D kein Versand von Mails mit Anhang mehr Allgemeine Java-Themen 2
T Automatisch Mails versenden Allgemeine Java-Themen 4
B Mails testen Allgemeine Java-Themen 7
S Zeichensatz im Betreff von Mails Allgemeine Java-Themen 7
Mike90 Attachments von Mails downloaden Allgemeine Java-Themen 3
André Uhres Welches Werzkeug benutzt ihr um eure Mails zu lesen? Allgemeine Java-Themen 47
J E-Mails verschicken Allgemeine Java-Themen 33
G Mail Konten (E-Mails holen) Allgemeine Java-Themen 5
S Ungelesene Mails mit Java Mail abholen Allgemeine Java-Themen 3
K Mails verschicken ohne SMTP-Server Allgemeine Java-Themen 18
S Verschlüsselte Mails entschlüsseln! Allgemeine Java-Themen 2
G E-Mails versenden Allgemeine Java-Themen 12
D mails auch als fax verschicken ? ? ? Allgemeine Java-Themen 2
G Mails aus TimerTask Allgemeine Java-Themen 6
G mit Java Mails verschicken Allgemeine Java-Themen 7
R Java Mail Abrufen von Mails Allgemeine Java-Themen 2
P E-Mails mittels POP3 abrufen Allgemeine Java-Themen 2
S mails senden? Allgemeine Java-Themen 2
I Mehrere Klassen mit den selben Daten Allgemeine Java-Themen 5
padde479 Collections Daten in Dreiecksform Allgemeine Java-Themen 13
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
A Hartgecodete Daten auslagern Allgemeine Java-Themen 4
F Laden von bestimmten Daten aus TAR Archiv Allgemeine Java-Themen 23
S Webservices für binäre Daten? Allgemeine Java-Themen 5
OnDemand Daten in RAM zwischenspeichern oder lieber aus DB holen? Allgemeine Java-Themen 24
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
J JSON Daten von einer Webseite erhalten Allgemeine Java-Themen 2
S Entities aus XML - Daten. Allgemeine Java-Themen 1
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
M Daten aus MatLab Datei lesen Allgemeine Java-Themen 8
N Daten einer JCoTable in JTextArea anzeigen Allgemeine Java-Themen 7
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
C Daten für Klassifikationsverfahren gewinnen Allgemeine Java-Themen 6
J Daten von Quelltext Allgemeine Java-Themen 5
K OOP Daten addieren sich bei GUI-Eingabe Allgemeine Java-Themen 10
J Jasper Reports - Daten vom Hoster Allgemeine Java-Themen 2
kodela Daten während Laufzeit zugriffsbereit Allgemeine Java-Themen 15
J Millisekunde zwischen 2 Daten Allgemeine Java-Themen 6
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
R Android Daten online senden Allgemeine Java-Themen 0
P Datenbank-MiniGUI fügt keine Daten ein Allgemeine Java-Themen 4
K Gespeicherte Daten von einer LinkedList auf vier LinkedList verteilen Allgemeine Java-Themen 6
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
K Datei (CSV-ähnlich) in Java einlesen & mit teil der Daten Graphen erstellen Allgemeine Java-Themen 9
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
OnDemand Desktop-Applikation schreiben, wie daten persistent? Allgemeine Java-Themen 9
S Erste Schritte Fehlender Gedanken-Ansatz bei Interpretation von Daten Allgemeine Java-Themen 1
J Auslesen Daten Java/HTML Allgemeine Java-Themen 15
K Große Mengen an Daten speichern Allgemeine Java-Themen 9
D Daten in MySQL-Datenbank schreiben Allgemeine Java-Themen 13
A Swing FileWriter schreibt keine Daten in Datei Allgemeine Java-Themen 13
M Daten aus anderen Programmen auslesen Allgemeine Java-Themen 2
D Best Practice Login-Daten: Wie am besten abrufen? Allgemeine Java-Themen 6
L Best Practice Log Dateien analysieren und eventuell passende Daten am Chart darstellen Allgemeine Java-Themen 1
J Serial Port Daten empfangen Allgemeine Java-Themen 5
H Daten via COM Schnittstelle erhalten Allgemeine Java-Themen 2
J Daten persistent speichern Allgemeine Java-Themen 14
S Allgemeine parallelisierte Loesung um Daten im Hintergrund zu laden..? Allgemeine Java-Themen 6
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
G Daten aus Website auslesen Allgemeine Java-Themen 7
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
O Serial Port Daten als Tastaturanschlag senden Allgemeine Java-Themen 0
N Zeitabstand zwischen 2 Daten(Mehrzahl von Datum) Allgemeine Java-Themen 3
T Input/Output Daten in eine Datei schreiben Allgemeine Java-Themen 4
Z daten bindung Allgemeine Java-Themen 1
A Datentypen Gregorian Calendar - 2 Daten sind gleich?? Allgemeine Java-Themen 3
L Vergleich-Xml-Daten Allgemeine Java-Themen 3
vandread Daten verschlüsseln mit Java oder Datenbank Allgemeine Java-Themen 15
A Daten in Formularen/Vorlagen erstellen und ausdrucken Allgemeine Java-Themen 3
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
T Daten über port abfangen mit proxy server Allgemeine Java-Themen 12
Todesbote Excel Blattschutz aufheben und Daten einfügen Allgemeine Java-Themen 3
T Mit Apache Poi Daten aus einer Excel Tabelle kopieren und in Word einfügen Allgemeine Java-Themen 1
OnDemand PC identifizieren / Daten auslesen Allgemeine Java-Themen 15

Ähnliche Java Themen

Neue Themen


Oben