Mail Versand

hab das so gemacht

Java:
while((zeile = reader.readLine()) != null) {                        
                        if(zeile.contains("FROM ")) {
                            from = zeile.split("FROM ")[1];
                        }
                        String[] val = zeile.split(" " , 2) ;
                        if(val.length >= 1) {
                            String code = val[0];
                            if(code.equals("TO ")) {
                                System.out.println("2");
                            }
                        }
}

Krieg aber die 2 nie raus.
 
hab das mit
Code:
else if
auch versucht kommt aber nichts raus

Java:
while((zeile = reader.readLine()) != null) {                        
                        String[] val = zeile.split(" " , 2) ;
                        if(val.length >= 1) {
                            String code = val[0];
                            if(code.equals("TO ")) {
                                System.out.println("TO");
                            } else if(code.equals("FROM")) {
                                System.out.println("FROM");
                            } else if (code.equals("CC")) {
                                System.out.println("CC");
                            } else if (code.equals("BCC")) {
                                System.out.println("BCC");
                            } else if (code.equals("SUBJ")) {
                                System.out.println("SUBJ");
                            } else if (code.equals("FILE")) {
                                System.out.println("FILE");
                            } else if (code.equals("MSG")) {
                                System.out.println("MSG");
                            }
                        }
}

Mach ich was falsch?
 
Du hast nach dem [c]TO[/c] noch ein Leerzeichen, welches raus muss. Füg mal das an und probiers nochmals:
Java:
else {
    System.out.println("nicht gefunden: \"" + code + "\"");
}
 
musste noch ein "-" vor jedes Wort machen

Java:
while((zeile = reader.readLine()) != null) {                        
                        String[] val = zeile.split(" " , 2) ;
                        if(val.length >= 1) {
                            String code = val[0];
                            if(code.equals("-TO")) {
                                System.out.println("TO");
                            } else if(code.equals("-FROM")) {
                                System.out.println("FROM");
                            } else if (code.equals("-CC")) {
                                System.out.println("CC");
                            } else if (code.equals("-BCC")) {
                                System.out.println("BCC");
                            } else if (code.equals("-SUBJ")) {
                                System.out.println("SUBJ");
                            } else if (code.equals("-FILE")) {
                                System.out.println("FILE");
                            } else if (code.equals("-MSG")) {
                                System.out.println("MSG");
                            } else {
                                System.out.println("nicht gefunden: \"" + code + "\"");
                            }
                        }
}

Und jetzt kann ich dann für
Code:
System.out.println("TO");
das hier einfügen?
Code:
to = val[1].split(";");
 
hab noch eine Frage..

Ich krieg die Mail irgendwie immer doppelt.
Konnte aber kein Fehler finden.

Java:
public static void send(String[] to, String from, String[] cc, String[] bcc, String subject, String inhalt, String anhang) throws AddressException, MessagingException {
        final String host = "xxxxxxxx";     // SMTP-Host
        final int port = 25;                    // SMTP-Port
        final String username = "xxxxxxxxxxxxx";    // SMTP-Username
        final String passwort = "xxxxxxxxxxxxx";     // SMTP-Passwort

        // Eigenschatfen
        Properties props = System.getProperties();
        props.put("mail.smtp.host", host);
        Session session = Session.getInstance(props, null);

        try {
            MimeMessage msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress(from));


            InternetAddress[] addressTo = new InternetAddress[to.length];
            for (int i = 0; i < addressTo.length; i++) {
                addressTo[i] = new InternetAddress(to[i]);
            }
            msg.setRecipients(Message.RecipientType.TO, addressTo);

            if (cc != null) {
                InternetAddress[] addressCc = new InternetAddress[cc.length];
                for (int i = 0; i < addressCc.length; i++) {
                    addressCc[i] = new InternetAddress(cc[i]);
                }
                msg.setRecipients(Message.RecipientType.CC, addressCc);
            }


            if (bcc != null) {
                InternetAddress[] addressBcc = new InternetAddress[bcc.length];
                for (int i = 0; i < addressBcc.length; i++) {
                    addressBcc[i] = new InternetAddress(bcc[i]);
                }
                msg.setRecipients(Message.RecipientType.BCC, addressBcc);
            }

            msg.setSubject(subject);

            MimeBodyPart mbp1 = new MimeBodyPart();
            mbp1.setContent(inhalt, "text/html; charset=ISO-8859-1");

            MimeBodyPart mbp2 = new MimeBodyPart();

            if (anhang != null) {
                FileDataSource fds = new FileDataSource(anhang);
                mbp2.setDataHandler(new DataHandler(fds));
                mbp2.setFileName(fds.getName());
            }

            Multipart mp = new MimeMultipart();
            mp.addBodyPart(mbp1);
            if (anhang != null) {
                mp.addBodyPart(mbp2);
            }

            msg.setContent(mp);

            msg.setSentDate(new Date());

            Transport.send(msg);
        } catch (MessagingException mex) {
            mex.printStackTrace();
            Exception ex = null;
            if ((ex = mex.getNextException()) != null) {
                ex.printStackTrace();
            }
        }
    }
 
Aufrufen tuhe ich es so aus
Code:
Mail.send(to, from, cc, bcc, subj, inhalt, anhang);

Wenn eine Datei ausgelsen wurde wird das ausgeführt, und dann kommt die nächste Datei usw
 
Dann lass dir wichtige Steps (z.B. der Aufruf von [c]send()[/c]) ausgeben. Du wirst den Fehler dann sicher schnell finden - oder er liegt nicht bei dir.
 
wenn ich nach
Code:
Transport.send(msg);

das hier ausgeben lasse
Java:
System.out.println(msg);

bekomme ich das hier
Code:
javax.mail.internet.MimeMessage@55571e
javax.mail.internet.MimeMessage@1bf6770
 
Hab jetzt was gefunden.

Java:
for (int i = 0; i < files.length; i++) {
                if (!files[i].isDirectory()) {
                    BufferedReader leser = new BufferedReader(new FileReader(files[i]));
                    String zeile = null;
                    while ((zeile = leser.readLine()) != null) {
                        String[] val = zeile.split(" ", 2);
                        if (val.length >= 1) {
                            String vorzeichen = val[0];
                            if (vorzeichen.equals("-TO")) {
                                to = val[1].split(";");
                                }
                                System.out.println("TO: " + val[1]);  
                            } else if (vorzeichen.equals("-FROM")) {
                                from = val[1].replace("\"", "");
                                System.out.println("FROM: " + val[1]);
                            }
                          }
                        }

Hier krieg ich irgendwie bei
Code:
FROM
und
Code:
TO
immer alles doppelt
 
Lass dir einfach proaktiv weitere Sachen ausgeben, welche dich das Problem lösen lassen. Du musst nicht immer nur das machen, was ich als Tipp gebe. Z.B. Wär hier die Länge von [c]files[/c] (bzw. deren Inhalt) interessant etc etc.
 
Wir sind hier nicht bei Twitter, nicht jeder kleinste Gedanke muss mitgeteilt werden.

Auch wenn ich es wiederhole, geh doch dein Programm Schritt für Schritt durch. Das machst du am besten mit dem Debugger (und Breakpoints) oder System.out. Das Wichtigste ist hier allerdings Eigeninitiative und etwas Durchhaltevermögen bei der Fehlersuche.
 

Zurück
Oben