# javax.mail – Sending failed – Invalid Addresses



## mhs (8. Mrz 2005)

Hallo.
Ich habe folgendes Problem:
Ich versende ein HTML Document per Java an mehrere Email-Adressen. Jedoch funktioniert das versenden nicht wenn eine der Email-Adressen nicht auf dem Mail-Server ist.

Syntax:
.....
Import javax.mail.*;
....
Transport.send(msg);
...
„hier wird ein Messaging Exception ausgelöst“

Die Logausgabe:
DEBUG SMTP 550 5.7.1 Unable to relay for test@test.de
Invalid Addresses
Test@test.de
DEBUG SMTPTransport: Sending failed because of invalid destination addresses

Welche Funktion überprüft denn die Email-Adressen bzw. ob diese auf dem HOST (email-Server) vorhanden ist und wie kann man diese „ausschalten“?

Danke für Antworten und Hilfe.

Gruß
Marcel


----------



## thE_29 (8. Mrz 2005)

Jo, wahrscheinlich sieht er nach ob es so einen Server überhaupt gibt oder ob er Mail Adressen zuläßt und falls nicht wird er eine Exception werfen!

Geh einfach mal die send Methode durch und schau nach wo er die Exception wirft (oder einfach die Exception gut lesen und schaun welche Zeile).

Da muß halt irgendwo ne Überprüfung stattfinden, weil das E-Mail Protokoll das glaube ich nicht von alleine macht (und falls doch, dann wirst du es nicht abschalten können).


----------



## Bleiglanz (8. Mrz 2005)

das macht der SMTP Server (Postfix - Exim - Sendmail - Exchange - usw.)

der holt ja erstmal über DNS den MX record für die domain, damit er irgendwas zustellen kann...


----------



## mhs (8. Mrz 2005)

Bleiglanz hat gesagt.:
			
		

> das macht der SMTP Server (Postfix - Exim - Sendmail - Exchange - usw.)
> 
> der holt ja erstmal über DNS den MX record für die domain, damit er irgendwas zustellen kann...



???

@thE_29
Naja
die Exception wird bei Transport.send geworfen.
Bin nicht so der Guruh, wie soll ich denn da weiter schauen? Die send Funktion wird ja vom javax Package zur Verfügung gestellt....

Wenn ich Adressen eingeben welche auf dem Mail-Server sind funktioniert alles problemlos.
Es ist ein Server einer sehr großen Firma, wenn ich im Outlook auf Adressbuch gehe sehe ich alle email-Adressen. Wird eine dieser email-Adressen in Java eingegeben wird sie als Valid deklariert (Logausgabe: Valid Addresse...). 
Gebe ich eine an welche nicht in dieser email-Adressliste ist werden sie als Invalid deklariert (Logausgabe: Invalid Addresses...). 
Das Problem das senden wird komplett abgebrochen, d.h. die "richtigen" Empfänger bekommen auch keine Mail.

1. Ziel wäre, dass zumindest die Empfänger welche auf der Adressliste stehen, die email empfangen.
2. Ziel wäre, dass alle die Email empfangen, denn die email-Adressen sind ja richtig.

@Bleiglanz
(Anmerkung wenn ich die gleichen Adressen im Outlook eingebe, auch wenn sie nicht in der email-Adresslisten sind, kann ich die email natürlich versenden.)

Danke für weitere Hilfe.

Gruß
Marcel


----------



## thE_29 (8. Mrz 2005)

O, das halt alle abgebrochen werden ist blöd!


Und ich habe die mail Library zz auch net da, also kann ich net sagen ob man das umgehen kann!

Aber hast du keine IDE? Sag einfach "go to definition" oder so ähnliches bei der send Funktion, bzw debugg das ganze mal!

Ansonsten wird Bleiglanz schon recht haben, Outlook wird diesen Fehler einfach "schlucken" und du bekommst meistens dann nachher ein Mail das die Adresse nicht erreichbar ist (statt das er dir gleich einen Fehler ausgibt).


----------



## mhs (8. Mrz 2005)

Jetzt habe ich geantworten aber da ging wohl etwas schief, also noch einmal

@Bleiglanz
????
Also wenn ich die Email-Adressen im Outlook eingeben werden alle normal versand.

@thE_29
Bin nicht so der Guruh. Aber Transport.send wirft die Exception wie kann ich denn die send Methode weiter verfolgen?
Ist doch eine Methode des javax Package!?!

Das Problem wenn ich in Java Email Adressen eigeben welche nicht im Email-Adressverzeichnis des email-Servers stehen werden sie im Logfile als Invalid Addresses deklariert ansonsten als Valid Addresses.

Problem ist auch dass wenn eine Addresse Invalid ist keiner die Email erhält.

Danke für weiter Hilfe


----------



## Guest (9. Mrz 2005)

thE_29 hat gesagt.:
			
		

> Ansonsten wird Bleiglanz schon recht haben, Outlook wird diesen Fehler einfach "schlucken" und du bekommst meistens dann nachher ein Mail das die Adresse nicht erreichbar ist (statt das er dir gleich einen Fehler ausgibt).



Wie meint ihr das? 
Ist ja gerade das Problem, wenn die email wenigsten raus gehen würde, was dann zurück kommt ist egal. Aber sie wird eben nicht versendet.
Sobald eine email-Adresse nicht in der Adressliste steht, wird die ganze Mail nicht versendet.
Wenn ich eine Nachricht über Outlook sende kommt da nichts zurück....

Ich werde versuchen im Exception Handling die Invalid Addresses heraus zu fildern und dann erneut die send() Methode aufzurufen, aber eine Lösung ist dies noch nicht.....

Mir fehlen die Ideen was ich versuchen könnte....

Gruß
Marcel


----------



## Bleiglanz (9. Mrz 2005)

>>Also wenn ich die Email-Adressen im Outlook 
>>eingeben werden alle normal versand. 

WER oder WAS ist denn in deinem Outlook als SMTP agent eingetragen? Nimm dann diesen Host auch für deine Java Experimente....


----------



## mhs (28. Mrz 2005)

Viel einfacher als gedacht! Typisch am Besten man sucht den Fehler erst bei Anderen z.B. den Admins  :wink: 

Problem gelöst!!! 
Es lag an der Firewall bzw. am falschen Host. Ich musste einen anderen Host
(anderer Mailserver) einstellen.
Dieser "darf" wohl überall hin senden..... jetzt passt alles.

Die Hostadresse die ich hatte war wohl für einen Mailserver der durch die
Firewall sehr eingeschrenkt wurde....

Danke für die Hilfen.

Gruß
Marcel


----------

