Externe File Emails für JavaMail

Status
Nicht offen für weitere Antworten.
J

JensDaMan

Gast
Also ich hab ne eigene implementierung der JavaMail Api und versuche die Email adressen (TO) von einer externen txt file in eine arrayList zu laden. Dadurch kann ich dann in der externen file angeben an welche personen das email verschickt werden soll. Bin ziemlich neu in java und weiss das ich den bufferedReader und streamInput bentzen muss, aber das mit der ArrayList verschafft mir probleme.

Also erstens ist die ArrayList das richtige werkzeug? Ich mein Arrays könnte man ja auch benutzen. Woher weiss ich welches besser ist?

Zweitens wie baue ich das auf? Also ich hab da mal ein bisschen code:

Code:
package mail;

import java.io.*;
import java.net.InetAddress;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

import config.Config;

public class JXMessage {
	private ArrayList _toList = new ArrayList();

	private ArrayList _ccList = new ArrayList();

	private ArrayList _bccList = new ArrayList();

	private ArrayList _fileList = new ArrayList();

	private String _message = null;

	private String _mailServer = null;

	private String _mailSubject = null;

	private String _replyTo = null;

	private String _fromName = null;

	private boolean _asHTML = false;

	public JXMessage() {
	}

	public JXMessage(String svr) {
		setMailServer(svr);
	}

	public JXMessage(String to, String from, String svr) {
		addToAddress(to);
		setFromName(from);
		setMailServer(svr);
	}

	// set methods.

	public void setMessage(String msg) {
		_message = msg;
	}

	public void setMessage(StringBuffer msg) {
		_message = msg.toString();
	}

	public void setMailServer(String svr) {
		_mailServer = svr;
	}

	public void setMailSubject(String sub) {
		_mailSubject = sub;
	}

	public void setReplyTo(String rep) {
		_replyTo = rep;
	}

	public void setFromName(String from) {
		_fromName = from;
	}

	public void setHTML(boolean html) {
		_asHTML = html;
	}

	// data manipulation methods.

	public void addToAddress(String to) {
		if (!isStringInList(to, _toList)) {
			_toList.add(to);
		}//needs modification to read in file
	}

	public void addToAddress(ArrayList _to) {
		for (int i = 0; i < _to.size(); i++) {
			addToAddress((String) _to.get(i));
		}
		
	}
	
	public void addCCAddress(String cc) {
		if (!isStringInList(cc, _ccList)) {
			_ccList.add(cc);
		}
	}

	public void addCCAddress(ArrayList _cc) {
		for (int i = 0; i < _cc.size(); i++) {
			addCCAddress((String) _cc.get(i));
		}
	}

	public void addBCCAddress(String bcc) {
		if (!isStringInList(bcc, _bccList)) {
			_bccList.add(bcc);
		}
	}

	public void addBCCAddress(ArrayList _bcc) {
		for (int i = 0; i < _bcc.size(); i++) {
			addBCCAddress((String) _bcc.get(i));
		}
	}

	public void addFile(String pFile) {
		if (!isStringInList(pFile, _fileList)) {
			_fileList.add(pFile);
		}
	}

	public void addFile(ArrayList _files) {
		for (int i = 0; i < _files.size(); i++) {
			addFile((String) _files.get(i));
		}
	}
	
	public boolean deleteFile(String fileName) {
		File file = new File(fileName);
		return file.delete();
	}
	
	private boolean isStringInList(String add, ArrayList list) {
		boolean rv = false;
		if (list == null) {
			return rv;
		}
		for (int i = 0; i < list.size(); i++) {
			String l = (String) list.get(i);
			if (l != null && add != null) {
				if (l.equalsIgnoreCase(add)) {
					rv = true;
					break;
				}
			}
		}
		return rv;
	}

	// get methods

	protected ArrayList getToList() {
		return _toList;
	}

	protected ArrayList getCCList() {
		return _ccList;
	}

	protected ArrayList getBCCList() {
		return _bccList;
	}

	protected ArrayList getFileList() {
		return _fileList;
	}

	public String getMessage() {
		return _message;
	}

	public String getMailServer() {
		return _mailServer;
	}

	public String getMailSubject() {
		return _mailSubject;
	}

	public String getFromName() {
		return _fromName;
	}

	public String getReplyTo() {
		return _replyTo;
	}

	public boolean isHTML() {
		return _asHTML;
	}
	
}

Drittens wie wende ich das dann in der main methode an.
 

mikachu

Top Contributor
JensDaMan hat gesagt.:
Also erstens ist die ArrayList das richtige werkzeug? Ich mein Arrays könnte man ja auch benutzen. Woher weiss ich welches besser ist?

Eine ArrayList ist eine List-Extension und stellt im Gegensatz zu normalen Arrays mehrere Methoden über die Metadaten des ArrayList-Objekts bereit.
Der Verwendung von ArrayList steht soweit nix im Wege.

Einfach mal die API-Doc's zu ArrayList lesen :wink:

Die ArrayList stellt auch eine Methode contains( Object o) bereit, somit kannst du dir schonmal die isStringInList() Methode sparen, indem du diese einfach aufrufst.
if( _toList.contains( addr ) ) return; //Beispiel

desweiteren würde ich dir raten, die ArrayList gleich mit Typ zu erstellen
Code:
ArrayList< String > _toList = new ArrayList< String >(); // nur Strings werden abgelegt
 
J

JensDaMan

Gast
Ja genau nur muss ich jetzt die externe .txt file mit den email addressen in die ArrayList hinein stecken. Da liegt mein problem.

Also,
Code:
ArrayList< String > _toList = new ArrayList< String >(); // nur Strings werden abgelegt

ist richtig, nur wie mach ich die externe file in die add() method für die ArrayList mit einer externen File.

Die externe File hat nur e-mail adressen.
max@mustermmann.de
hans@mustermann.de

Die anzahl der adresses variiert sich mit der zeit.
Soll ich lieber addAll() oder nur add() benutzen und wie genau mach ich das?

Danke schon mal im vorraus
 

WieselAc

Top Contributor
Du liest die Datei zeilenweise ein und packst die Zeieln in deine Liste. Dabei kannst du in einem auch mit ein paar Abfragen überprüfen, ob die Mail-Adressen gültig sind.
 
J

JensDaMan

Gast
Also ok hat geklappt. Danke hier die lösung:

Code:
ArrayList<String> _to = new ArrayList<String>(); // Creating an empty list for TO addresses
			String emails = "c:\\TestFolder\\Email\\Emails.txt"; // Specifying the external file with TO addresses
			try {
				FileInputStream stream = new FileInputStream(emails); // Streaming in the email file

				DataInput reader = new DataInputStream(stream); 
				String ausgabe = "";
				while ((ausgabe = reader.readLine()) != null) { // reading in addresses line by line 
					_to.add(ausgabe);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
			m.addToAddress(_to);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J File in Package erstellen & lesen mit Programmstart in externe Projekt Allgemeine Java-Themen 3
G externe Properties datei aus Jar File heraus lesen Allgemeine Java-Themen 12
R externe Libraries in jar-file Allgemeine Java-Themen 16
X Java gewerblich nutzen mit externe Bibliothek. Was zu beachten? Allgemeine Java-Themen 18
OSchriever Externe Anwendung beenden Allgemeine Java-Themen 41
T Externe Java Klasen zur Laufzeit einbinden Allgemeine Java-Themen 10
X Threads Externe Variablen in Run Methoden verändern Allgemeine Java-Themen 4
V JTable Externe Lib Allgemeine Java-Themen 2
JavaWolf165 Externe .jar-Dateien in .jar-Datei intigrieren Allgemeine Java-Themen 0
Neumi5694 Externe Skripte Allgemeine Java-Themen 9
L JavaFX JavafX externe FXML laden? Allgemeine Java-Themen 4
S Externe Eclipse Projekte dynamisch einbinden Allgemeine Java-Themen 3
Thallius Externe .jar dynamisch einbinden Allgemeine Java-Themen 5
W Threads Mit Thread und Runtime externe Programme öffnen Allgemeine Java-Themen 0
M Externe Jar sehr langsam Allgemeine Java-Themen 23
C Prozesssteuerung - Speicherhungrige externe Programme werden blockiert Allgemeine Java-Themen 2
F externe module. geht das in Java? Allgemeine Java-Themen 3
G Eclipse Wie mit Ant build.xml externe Jar´s einbinden? Allgemeine Java-Themen 5
M Wie externe System-Ressourcen zwangsweise freigeben Allgemeine Java-Themen 2
B Externe Programme und ProcessBuilder Allgemeine Java-Themen 5
nrg Externe Library Lizenzen Allgemeine Java-Themen 14
D externe programme / Jdesktoppane, ... Allgemeine Java-Themen 6
U Externe Logiken möglich? Allgemeine Java-Themen 8
G externe Steuerung von Sprachsoftware Allgemeine Java-Themen 3
C Externe Bilder in Java-Applet blocken? Allgemeine Java-Themen 2
B Eclipse externe Dateien mit einbinden Allgemeine Java-Themen 10
H externe JARs in eigenem Programm-Jar einbinden. Allgemeine Java-Themen 5
N externe Anwendung aktivieren (nicht starten!) Allgemeine Java-Themen 3
H Externe Prozesse und Inputstreams - ausgabe in JTextArea Allgemeine Java-Themen 3
oliver1974 Zugriff auf externe .class Dateien (und resourcen) aus JAR Allgemeine Java-Themen 11
G externe package Allgemeine Java-Themen 7
E externe Anwendung aufrufen und sich selbst beenden Allgemeine Java-Themen 8
W Java und externe Anwendungen Allgemeine Java-Themen 3
J Externe .jar bibis in programm .jar einbinden? Allgemeine Java-Themen 9
R Kontrolle über Externe Prozess Allgemeine Java-Themen 5
O Externe Jars in eigene JAr packen in Eclipse Allgemeine Java-Themen 5
M Standardpfad für externe Dateien? Allgemeine Java-Themen 2
R aus Jar auf externe XML-Datei zugreifen Allgemeine Java-Themen 14
I externe Namensliste auslesen Allgemeine Java-Themen 13
M Java2exe Externe Packages einbinden! .JAR und sowas Allgemeine Java-Themen 7
thE_29 Externe (unbekannte) Klasse nutzen Allgemeine Java-Themen 11
J Externe Ansteuerung (Motor,Licht) mit Java? Allgemeine Java-Themen 4
W Jar-File Start nur über Terminal Allgemeine Java-Themen 13
R 11 GB File lesen ohne zu extrahieren Filedaten Bereich für Bereich adressieren dann mit Multi-Thread id die DB importieren Allgemeine Java-Themen 3
D Read JSON File Problem Allgemeine Java-Themen 9
S Umstellung von File auf Path - Probleme mit Stream Allgemeine Java-Themen 5
C jar File mehrfach aufrufen (als Windows Dienst) Allgemeine Java-Themen 5
N File Path mit Variablen angeben Allgemeine Java-Themen 1
izoards Zugriff auf gemeinsame Ressource (CSV-File) Allgemeine Java-Themen 3
S Class File Editor -> Source not found Allgemeine Java-Themen 4
F jar File ausführen Allgemeine Java-Themen 14
M File Binary Representation Allgemeine Java-Themen 1
N jar File auf Mac mit Doppelklick starten Allgemeine Java-Themen 5
O Input/Output java.io.File beenden Allgemeine Java-Themen 5
G File not found - nach dem Kompilieren Allgemeine Java-Themen 6
T Jar File zu exe... Allgemeine Java-Themen 3
M Foreign Memory API / Memory-Mapped File Allgemeine Java-Themen 0
R Delete files before creating new from temp using Java file method Allgemeine Java-Themen 1
S File lesen und schreiben Java 6 Allgemeine Java-Themen 2
T String-Manipulation beim Ablauf in Eclipse und als JAR-File Allgemeine Java-Themen 8
F Input/Output FileNotFoundException, obwohl File existiert Allgemeine Java-Themen 5
G Excel File öffnen, in Zelle schreiben, abspeichern Allgemeine Java-Themen 6
L JAR-File auf Ilias (LMS) laufen lassen Allgemeine Java-Themen 0
ralfb1105 Classpath Directory fuer Properties File Allgemeine Java-Themen 2
L File beim Kopieren in einen anderen Ordner umbenennen Allgemeine Java-Themen 6
I File ausführen und mein Programm bearbeiten lassen Allgemeine Java-Themen 11
A File lesen Codierung Charset Allgemeine Java-Themen 5
J .java-Dateitext Compile zur Laufzeit ohne File Allgemeine Java-Themen 15
M Key-File im selben Ordner speichern? Allgemeine Java-Themen 18
I TrueZip add file to archive Allgemeine Java-Themen 10
T Probleme mit dem Pfad zum Propertie file Allgemeine Java-Themen 7
J ftp - delete file ohne appache Allgemeine Java-Themen 8
X Klassen File-Klasse wird als Directory markiert Allgemeine Java-Themen 8
T ImageIO.read -> Can`t read input file Allgemeine Java-Themen 11
L Applet Problem "security: Trusted libraries list file not found" ? Allgemeine Java-Themen 7
C Swing File[] als klickbare links in irgendeinem Swing Element Allgemeine Java-Themen 3
H Kennt sich jemand mit Eclipse und dem Thema Jar-File aus ? Allgemeine Java-Themen 6
H Laden einer (Resourcendatei) aus einem Jar-File Allgemeine Java-Themen 17
C Authentifizierung mit java.nio.file? Allgemeine Java-Themen 5
L CSV File lesen, in ArrayList speichern und ausgeben Allgemeine Java-Themen 3
M xlsx File auslesen Exception occured Allgemeine Java-Themen 13
offi Drag and Drop mehrerer File aus Explorer in JTable Allgemeine Java-Themen 1
G Java/LibGDX File Loading Exception Allgemeine Java-Themen 2
Cromewell JavaFX FXML-File lädt unter Ubuntu nicht Allgemeine Java-Themen 7
D Java Anwendung mit dll File Allgemeine Java-Themen 5
AssELAss Log4j Logging Ausgabe für jede Klasse in seperates File Allgemeine Java-Themen 2
thet1983 Input/Output read properties file from classpath Allgemeine Java-Themen 3
J Umwandeln von URL zu File und danach kopieren geht nicht Allgemeine Java-Themen 1
J Properties file ändern Allgemeine Java-Themen 12
S Executable Jar File startet nicht unter Windows 10 Allgemeine Java-Themen 3
B Objekte anhand von Properties file Allgemeine Java-Themen 41
Dechasa Input/Output Write into File Allgemeine Java-Themen 2
N Maven ObjectMapper Error wenn das File gespeichert wird Allgemeine Java-Themen 0
H Security Manager (IIOException: Can't read input file!) Allgemeine Java-Themen 2
H File.listFiles() funktioniert nicht... Allgemeine Java-Themen 10
C Input/Output Problem bei Datei verschiebung mit File.move und Paths.get() Allgemeine Java-Themen 26
X Zeile unter einer bestimmen Zeile hinzufügen(File) Allgemeine Java-Themen 1
F Open source file übersetzen Phython -> Java Allgemeine Java-Themen 4
C file.delete() funktioniert bei zweiten aufruf nicht mehr Allgemeine Java-Themen 3
M Desktop jar File icon Ändern? Allgemeine Java-Themen 14

Ähnliche Java Themen

Neue Themen


Oben