In Java eine Email senden?

... komplette Frage anzeigen

2 Antworten

Es gibt mehrere Möglichkeiten um EMails mit Java zu versenden, beispielsweise:

* Via Java-Standard: Paket: javax.mail

* Via Apache-Commons-Mail library: 

was ich dafür brauche

Neben der Implementierung des Codes, noch einen SMTP Server, welcher deine Anfrage entgegen nimmt und die EMail versendet.

 was ich beachten muss

Je nach dem, für was du dich entscheidest, spielt es dann für eine Rolle. So sind beispielsweise einige Standard-Property-Attribute für ersteres relevant.

Aber sofern du bei der Umsetzung nicht weiter kommst, kannst du bescheid geben.

Antwort bewerten Vielen Dank für Deine Bewertung

Hier ein Beispielcode zum von KnusperPudding bereits genannten javax.mail:

void SendMail(string from, string to, string subject, string mailbody, string host, string port, string username, string password, boolean ssl){
Properties props = System.getProperties();
props.put("mail.smtps.host", host);
props.put("mail.smtps.auth", !username.equals(""));
props.put("mail.smtps.port", port);

Session session = Session.getInstance(props, null);

Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));;
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false));
msg.setSubject(subject);
msg.setText(mailbody);
msg.setSentDate(new Date());

Transport t
if(ssl) t = session.getTransport("smtps");
else t = session.getTransport("smtp");

t.connect(host, port, username, password);
t.sendMessage(msg, msg.getAllRecipients());
System.out.println("Response: " + t.getLastServerResponse());
t.close();
}

Anmerkung: Ich hab's zwar nicht getestet, sollte aber (ohne größere) Anpassungen funktionieren...

P.S.: Du könntest auch versuchen, mit java.net.Socket nen SMTP-Client "from Scratch" zu implementieren, aber das ist nur bedingt, so denn überhaupt zu empfehlen...

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von KnusperPudding
21.11.2016, 14:30

Sind zwar ein paar Syntaxfehler drin, aber Respekt dafür, dass das wohl frei aus dem Kopf kommt.

Im Prinzip ist es das.

0