Problem Java Mail API: CC wird nicht berücksichtigt

Grizzly

Top Contributor
Hallo zusammen,

ich arbeite schon längere Zeit mit der Java Mail API. Allerdings bestanden die Mails bisher nur aus einem Absender und einem Empfänger. Heute wollte ich dann einmal einen Empfänger in Kopie hinzufügen, aber irgendwie will es mir nicht gelingen. Er wird zwar als CC in der Mail gesetzt, allerdings wird der Person keine Mail zugestellt.

Nun wäre meine Frage, ob einer von Euch einen Fehler in meinem Code sieht. Ich habe auch die Debugging Ausgabe der Mail API dazu geschrieben. Oder ist nur unser Notes Server zu doof.
[java=502] // Mail erstellen.
msg = new MimeMessage(this.session);
try {
msg.setFrom(message.getFrom());
} catch (MessagingException me) {
message.setLastException(new MailQueueException(
"Couldn't set sender address: " + message.getFrom(),
me), true);
this.reQueueMessage(message);
return;
}
try {
msg.setRecipient(Message.RecipientType.TO, message.getTo());
} catch (MessagingException me) {
message.setLastException(new MailQueueException(
"Couldn't set recipient address: " + message.getTo(),
me), true);
this.reQueueMessage(message);
return;
}
if ((message.getCopies() != null)
&& (message.getCopies().size() > 0)) {
addressIterator = message.getCopies().iterator();
while (addressIterator.hasNext()) {
ccAddress = addressIterator.next();
try {
msg.setRecipient(Message.RecipientType.CC, ccAddress);
} catch (MessagingException me) {
message.setLastException(new MailQueueException(
"Couldn't set carbon copie address: "
+ ccAddress, me), true);
this.reQueueMessage(message);
return;
}
}
}[/code]
Anmerkung: Ich habe einige Daten durch [[WERT]] ersetzt. Natürlich stehen hier in der Debugging Ausgabe der Mail API richtige Werte.
Code:
DEBUG: JavaMail version 1.3.3
DEBUG: java.io.FileNotFoundException: C:\Programme\Java\jre1.6.0_23\lib\javamail.providers (Das System kann die angegebene Datei nicht finden)
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.providers
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.address.map
DEBUG: java.io.FileNotFoundException: C:\Programme\Java\jre1.6.0_23\lib\javamail.address.map (Das System kann die angegebene Datei nicht finden)
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth false
DEBUG SMTP: trying to connect to host "[[IPADRESSE_SERVER]]", port 25, isSSL false
220 [[NAME_SERVER]] ESMTP Service (Lotus Domino Release 7.0.2FP2) ready at Tue, 25 Jan 2011 12:17:10 +0100
DEBUG SMTP: connected to host "[[IPADRESSE_SERVER]]", port: 25

EHLO [[NAME_RECHNER]]
250-[[NAME_SERVER]] Hello <<RECHNERNAME>> ([[[IPADRESSE_RECHNER]]]), pleased to meet you
250-HELP
250-SIZE
250 PIPELINING
DEBUG SMTP: Found extension "HELP", arg ""
DEBUG SMTP: Found extension "SIZE", arg ""
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: use8bit false
MAIL FROM:<[[ADRESSE_ABSENDER]]>
250 [[ADRESSE_ABSENDER]]... Sender OK
RCPT TO:<[[ADRESSE_EMPFAENGER]]>
250 [[ADRESSE_EMPFAENGER]]... Recipient OK
DEBUG SMTP: Verified Addresses
DEBUG SMTP:   [[NAME_EMPFAENGER]] <[[ADRESSE_EMPFAENGER]]>
DATA
354 Enter message, end with "." on a line by itself
Message-ID: <32170335.01295954213779.JavaMail.admin@[[NAME_RECHNER]]>
Date: Tue, 25 Jan 2011 12:16:53 +0100 (CET)
From: [[NAME_ABSENDER]] <[[ADRESSE_ABSENDER]]>
To: [[NAME_EMPFAENGER]] <[[ADRESSE_EMPFAENGER]]>
Subject: Test
Cc: [[NAME_KOPIE]] <[[ADRESSE_KOPIE]]>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable


Blabla Text blabla


.
250 Message accepted for delivery
 

Grizzly

Top Contributor
Ich habe nun einmal probiert mit Thunderbird eine Mail über den SMTP zu versenden und habe das Ganze mit Wireshark protokolliert. Und es kam Interessantes zu Tage: Der Kopie Empfänger wird ebenfalls mit "RCPT TO:" als Empfänger eingetragen, in der Mail selber sind aber der Empfänger sowie der Empfänger der Kopie sauber getrennt (To / CC).
Code:
220 [[NAME_SERVER]] ESMTP Service (Lotus Domino Release 7.0.2FP2) ready at Tue, 25 Jan 2011 14:30:33 +0100
EHLO [10.101.110.117]
250-[[NAME_SERVER]] Hello [[[IPADRESSE_SERVER]]] ([[[IPADRESSE_SERVER]]]), pleased to meet you
250-HELP
250-SIZE
250 PIPELINING
MAIL FROM:<[[ADRESSE_ABSENDER]]> SIZE=433
250 [[ADRESSE_ABSENDER]]... Sender OK
RCPT TO:<[[ADRESSE_EMPFAENGER]]>
250 [[ADRESSE_EMPFAENGER]]... Recipient OK
RCPT TO:<[[ADRESSE_KOPIE]]>
250 [[ADRESSE_KOPIE]]... Recipient OK
DATA
354 Enter message, end with "." on a line by itself
Message-ID: <4D3ED068.2040209@[[DOMAIN]]>
Date: Tue, 25 Jan 2011 14:30:16 +0100
From: [[NAME_ABSENDER]] <[[ADRESSE_ABSENDER]]>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.12) Gecko/20101027 Thunderbird/3.1.6
MIME-Version: 1.0
To: [[ADRESSE_EMPFAENGER]]
CC: [[ADRESSE_KOPIE]]
Subject: Test 2
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Enconding: 7 bit

Test 2
.
250 Message accepted for delivery
 

Grizzly

Top Contributor
Ich hatte das gleiche Phänomen. Habe bei CC addRecipient verwendet anstatt setRecipients

Ich habe meinen Code einmal umgestellt. Aber das Problem bleibt: Die Java Mail API setzt die CC Adressen nicht als RCPT TO: Befehle an den Mail Server ab.
[java=510] try {
msg.addRecipient(Message.RecipientType.TO, message.getTo());
} catch (MessagingException me) {
message.setLastException(new MailQueueException(
"Couldn't set recipient address: " + message.getTo(),
me), true);
this.reQueueMessage(message);
return;
}
if ((message.getCopies() != null)
&& (message.getCopies().size() > 0)) {
ccAddresses = new InternetAddress[message.getCopies().size()];
ccAddresses = message.getCopies().toArray(ccAddresses);
try {
msg.addRecipients(Message.RecipientType.CC, ccAddresses);
} catch (MessagingException me) {
message.setLastException(new MailQueueException(
"Couldn't set carbon copie addresses.", me), true);
this.reQueueMessage(message);
return;
}
}[/code]
 

Empire Phoenix

Top Contributor
recipients ist nen String[]
Java:
	    InternetAddress[] addressTo = new InternetAddress[recipients.length]; 
	    for (int i = 0; i < recipients.length; i++)
	    {
	        addressTo[i] = new InternetAddress(recipients[i]);
	    }
	    msg.setRecipients(Message.RecipientType.TO, addressTo);
das funktioniert soweit problemlos bei mir, und schickt die mail auch an die entsprechenden leute.
 

Grizzly

Top Contributor
recipients ist nen String[]
Java:
	    InternetAddress[] addressTo = new InternetAddress[recipients.length]; 
	    for (int i = 0; i < recipients.length; i++)
	    {
	        addressTo[i] = new InternetAddress(recipients[i]);
	    }
	    msg.setRecipients(Message.RecipientType.TO, addressTo);
das funktioniert soweit problemlos bei mir, und schickt die mail auch an die entsprechenden leute.

Danke, trifft aber mein Problem nicht. Wenn ich Message.RecipientType.TO verwende, habe ich auch keine Probleme. Aber Message.RecipientType.CC funktioniert nicht (zumindest mit der Methode, die InternetAddress Objekte als Parameter nimmt. Die Methode mit String habe ich bisher nicht probiert, kann mir aber auch nicht vorstellen, dass es etwas ändern würde).

Ich habe zwischenzeitlich mit die aktuelle Java Mail API v1.4.4 heruntergeladen. Hatte bisher die v1.3.3 im Einsatz. Leider hat dies auch keine Besserung gebracht.
 

Grizzly

Top Contributor
Okay, ich habe das Problem gefunden. Es war eigene Dummheit. Man muss die Empfänger halt nicht nur in der Mail angeben, sondern zusätzlich auch beim Versand selber. Hier die Problemzeilen:
[java=665] // Mail senden.
try {
this.transport.sendMessage(msg, new Address[]{message.getTo()});
} catch (SendFailedException sfe) {
message.setLastException(new MailQueueException(
"Couldn't send message because of invalid addresses.",
sfe), true);
this.reQueueMessage(message);
return;
} catch (MessagingException me) {
message.setLastException(new MailQueueException("Couldn't send "
+ "message because no or dead connection to smtp host.",
me), false);
this.reQueueMessage(message);
return;
}[/code]
Ich habe das durch folgende Zeilen ersetzt. Im Vektor allAddresses habe ich alle Adressen gesammelt (To und Cc).
[java=665] // Mail senden.
addresses = new InternetAddress[allAddresses.size()];
addresses = allAddresses.toArray(addresses);
try {
this.transport.sendMessage(msg, addresses);
} catch (SendFailedException sfe) {
message.setLastException(new MailQueueException(
"Couldn't send message because of invalid addresses.",
sfe), true);
this.reQueueMessage(message);
return;
} catch (MessagingException me) {
message.setLastException(new MailQueueException("Couldn't send "
+ "message because no or dead connection to smtp host.",
me), false);
this.reQueueMessage(message);
return;
}[/code]
 

DerEisteeTrinker

Bekanntes Mitglied
Du kannst Transport auch static verwenden. Außerdem gibt es eine zweite send Methode, da brauchst du keinen Vector angeben. Die Implementierung funzt ohne Probleme

Java:
protected void sendMessage(Session mailSession, Mail mail) throws AddressException,
		MessagingException {

	MimeMessage message = new MimeMessage(mailSession);
	
//		Empfänger der Mail setzen
	InternetAddress[] addrEmpf = InternetAddress.parse(mail.getEmpfaenger(), true);
	InternetAddress addrAbs = new InternetAddress(mail.getAbsender(), true);
	
//		Absender der Mail setzen
	message.setFrom(addrAbs);
	
//		Empfänger setzen und Absender als Kopie der Mail
	message.setRecipients(Message.RecipientType.TO, addrEmpf);
	message.addRecipient(Message.RecipientType.CC, addrAbs);
	
//		Betreff der Mail setzen
	message.setSubject(mail.getBetreff());

//		Inhalt der Email setzen
	message.setText(mail.getText());

//		Senden der Nachricht
	Transport.send(message);
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Java Mail Problem: Authentifizierung wird nicht immer mitgeschickt Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
J Problem beim Umstellen auf Java jdk 13 Allgemeine Java-Themen 3
J Problem bei Install java 13 Allgemeine Java-Themen 3
A Problem beim öffnen von Java-Installern Allgemeine Java-Themen 1
B Problem zu einem Java Projekt Allgemeine Java-Themen 6
S Java OpenOffice Problem mit Windows-Benutzerwechsel Allgemeine Java-Themen 19
C J2V8 NodeJs Java Bride Problem und Frage!?!? Allgemeine Java-Themen 1
Blender3D Java Swing Programm Windows 10 Autostart Problem Allgemeine Java-Themen 2
Seikuassi Input/Output Java transferTo ByteArrayOutputStream-Problem Allgemeine Java-Themen 4
K Problem: Java-Klasse mit mehreren Threads als eigenen Prozess starten Allgemeine Java-Themen 3
B Best Practice Java Zugriffsrechte Problem Allgemeine Java-Themen 2
B Java Zahlenausgabe Problem Allgemeine Java-Themen 6
N Problem mit Java Sperrlisten Allgemeine Java-Themen 0
F Java Spiel Sprung problem Allgemeine Java-Themen 5
G JavaFX Problem nach Update auf Java 8 Allgemeine Java-Themen 0
S Java Problem bei der Rückgabe eines Arrays Allgemeine Java-Themen 19
M Problem mit (etwas komplizierterem) Java Programm Allgemeine Java-Themen 14
W Java Logging Problem Allgemeine Java-Themen 3
K java problem Allgemeine Java-Themen 5
B java.io.IOException: Problem reading font data. Allgemeine Java-Themen 9
H Problem mit Java Generics Allgemeine Java-Themen 6
P Eclipse Java Native Interface-Problem Allgemeine Java-Themen 8
I Java als Dienst Problem Allgemeine Java-Themen 2
F Problem mit Java 7 und Proguard Allgemeine Java-Themen 6
L Input/Output Java und CMD Problem Allgemeine Java-Themen 3
C Java Server Pages Problem Allgemeine Java-Themen 6
M Lego Nxt und Java Problem Allgemeine Java-Themen 8
S Perfomance Problem mit Java Applikation Allgemeine Java-Themen 4
P Problem mit Java Web Start Allgemeine Java-Themen 1
J Eclipse Java Build Path / Java Problem??? Allgemeine Java-Themen 13
B USB-I2C Adapter JAVA problem Allgemeine Java-Themen 6
D Problem mit java.sql.Timestamp Allgemeine Java-Themen 2
L Problem mit Hintergrund bei JAVA Applet Allgemeine Java-Themen 27
D Problem mit Java version? Allgemeine Java-Themen 4
P Zip Problem in Java Allgemeine Java-Themen 4
N Kleines nicht java Problem Allgemeine Java-Themen 7
G Problem mit RSA Verschlüsselung bei .net und Java Allgemeine Java-Themen 1
Chris81T Performance Problem durch mehrfaches Starten eines JAVA Prog Allgemeine Java-Themen 8
V Java heap space Problem Allgemeine Java-Themen 8
T Problem: eclipse / Java / cyrillisch Allgemeine Java-Themen 4
D Problem mit java.util.scanner: Falsche Ergebnisse Allgemeine Java-Themen 4
S Java 5/6 Problem im Classpath Allgemeine Java-Themen 11
F Problem mit Java Listen Allgemeine Java-Themen 4
M Java applet zusammen mit DHTML z-index Problem Allgemeine Java-Themen 2
G problem mit java-editor Allgemeine Java-Themen 4
H Problem mit Java (dsound.dll) Allgemeine Java-Themen 5
E Java.net und Thread-Problem Allgemeine Java-Themen 2
S Problem mit backreference mit java und regex Allgemeine Java-Themen 7
L WindowsTrayIcon in Java 1.4 - Problem beim ausführen der JAR Allgemeine Java-Themen 2
C Java Batch Warte Problem Allgemeine Java-Themen 4
P Java Acces Datenbank Problem ! (Brauche eine Abfrage) Allgemeine Java-Themen 5
G Java-Problem mit Netbeans Allgemeine Java-Themen 2
J Problem mit Java Multimedia Framework Allgemeine Java-Themen 6
G Problem mit Java Fenstern Allgemeine Java-Themen 2
T Problem RSA-Algorithmus in Java? Allgemeine Java-Themen 2
B java problem - speichern Allgemeine Java-Themen 9
G Problem mit java.lang.reflect.Field Allgemeine Java-Themen 15
G java! Problem mit Chat-Applet Allgemeine Java-Themen 3
S Problem beim Bearbeiten von Java-Dateien unter Linux Allgemeine Java-Themen 3
R Browser-Problem nach Java-Update Allgemeine Java-Themen 9
D (gelöst) Java-Problem bei freemind mit fedora core 4 Allgemeine Java-Themen 9
G Java Server Faces - Problem Allgemeine Java-Themen 2
L-ectron-X Problem mit Collections.sort() mit Java 1.5 Allgemeine Java-Themen 9
C Hilfe! Java Control Panel & Limewire Problem! Allgemeine Java-Themen 3
A Probleme bei der Berechnung von Pi! Java Problem Allgemeine Java-Themen 2
G jTable-Problem --> java.lang.OutOfMemoryError Allgemeine Java-Themen 5
T JAVA+SQL=Mysteriöses Problem Allgemeine Java-Themen 3
P java exe erstellen problem Allgemeine Java-Themen 3
N Java Problem mit WIN ME Allgemeine Java-Themen 2
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
D Read JSON File Problem Allgemeine Java-Themen 9
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0

Ähnliche Java Themen

Neue Themen


Oben