Java- "Verbindungsaufbau abgelehnt"?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Demzufolge kann keine Verbindung zu einen SMTP-Server hergestellt werden, der deine Nachricht erst verschicken würde. Direkt fällt mir bei deinem Code bereits auf, dass eine Portangabe fehlt.

Du könntest einen Mail Provider wie GMail für den Versand nutzen. Dafür müsstest du natürlich einen GMail Account haben und dich somit authentifizieren können.

Properties settings = new Properties();
settings.put("mail.smtp.host", "smtp.gmail.com");
settings.put("mail.smtp.port", "587");
settings.put("mail.smtp.auth", "true");
settings.put("mail.smtp.starttls.enable", "true");

Session session = Session.getInstance(settings, new javax.mail.Authenticator() {
  @Override
  protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication("your account username", "your account password");
  }
});

// etc. ...

Die Absendeadresse (from) sollte deiner GMail-Adresse entsprechen.

Für einen Versand via SSL bräuchtest du ein App-Passwort, wenn dein GMail-Account durch eine 2FA gesichert ist. Zusätzlich würde der Port 465 verwendet werden und statt TLS kämen folgende zwei Einträge in das Properties-Objekt:

settings.put("mail.smtp.socketFactory.port", "465");
settings.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
Mythxx103 
Fragesteller
 15.12.2021, 07:28

Danke, aber was meinst du mit “username”? Ist das meine Email?

0
regex9  15.12.2021, 12:58
@Mythxx103

Das ist der Nutzername deines GMail-Accounts, mit dem du dich im Browser auch anmelden würdest, um auf das Postfach zugreifen zu können.

0
Mythxx103 
Fragesteller
 15.12.2021, 13:06
@regex9

Also die email adresse abc@gmail.com?

0

Verstehst du überhaupt, was da passiert bzw. gemacht wird? Nur weil du was aus dem Internet kopiert hast, heisst das noch längst nicht, dass das in deinem Code einfach so magisch funktioniert, sieht nämlich sehr danach aus.

String host = "x";//or IP address

"x" ist kein Hostname, sicherlich keiner, der in deinem Netzwerk vorhanden ist. Du musst hier also einen gültigen SMTP-Server angeben.

Dasselbe mit to und from, das sollten E-Mail-Adressen sein.

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung
Mythxx103 
Fragesteller
 14.12.2021, 18:40

Ich hab das manuell geändert, da ich weder email Empfänger noch Sender Adresse offenbaren will.

0
Mythxx103 
Fragesteller
 14.12.2021, 18:40

Und beim host habe ich den localhost angegeben…

0
Lezurex  14.12.2021, 18:41
@Mythxx103

Achso, okay. Läuft denn auf dem Localhost auch ein SMTP-Server?

1
Mythxx103 
Fragesteller
 14.12.2021, 19:25
@Lezurex

Pff, wie du bereits gesagt hast kenne ich mich da nicht sehr gut aus, weiß nur das man irgendwie den SMTP-Server zum speichern von den E-Mails nimmt. Wie kann ich denn nachgucken, ob da ein SMTP-Server drauf ist ?

0
Lezurex  14.12.2021, 19:28
@Mythxx103

Ein SMTP Server ist in erster Linie nur zum Ausliefern der Mails da. Wenn du nicht, weisst, ob einer drauf ist, dann wird da auch keiner sein. So einer ist nicht standardmässig installiert.

1
Mythxx103 
Fragesteller
 14.12.2021, 20:02
@Lezurex

Und wie installiere ich den ? Ist der notwendig für das schicken von Emails? Und ist die Email der localhost?

0
regex9  15.12.2021, 02:27
@Mythxx103

Der SMTP-Server ist essentiell. Er definiert den Mailtransport. Zuzüglich übernimmt er Validationen und Datenfilterung.

Es gibt diverse Lösungen für eine lokale Installation: Papercut, hMailServer, XMail, ... Installations-/Konfigurationsanleitungen solltest du auf deren offiziellen Webseiten finden. Andernfalls kannst du auch einen Provider wie GMail, GMX, o.ä. nutzen. Du musst dich allerdings zuvor darüber informieren, welche Einstellungen notwendig sind (Port, Host, TLS/SSL, evt. ist noch eine Aktivierung von POP3/IMAP im E-Mail-Account notwendig, ...).

Der Domainname localhost benennt den eigenen, lokalen Rechner. Eine E-Mail ist eine elektronische Nachricht bzw. das System für Verwaltung/Transport von elektronischen Nachrichten. Wenn du eine Nachricht erstellst (also im Grunde erst einmal nur die Daten, die die E-Mail später beschreiben sollen: Absender, Nachricht, Betreff, etc.) und sie an localhost:<IrgendeinPort> schickst, muss es auf deinem Rechner ein Programm geben (genauer: Einen SMTP-Server), welches auf Nachrichten über diese Adresse / diesen Port lauscht. Wurde die Nachricht erst empfangen, wird sie unter Achtung des SMTP-Protokolls verpackt (man könnte hier auch von dem Briefumschlag reden) und schließlich versandt.

2