Email versenden mit Java für einen absoluten Anfänger

Haggele

Grünschnabel
Hallo zusammen,
nachdem ich lange gesucht habe und keine für mich einfache Lösung für das versenden einer einfachen Email gefunden habe, eröffne ich jetzt ein Eigenes Thema.
Wie schon in der überschrift zu erkennen, würde ich gerne einen String bzw. 3 Strings über meine Email-Addresse verschicken, die unter der Domain live.de angemeldet ist.
Wie, bitte mit Erklärung schaffe ich das?
Vielen Dank schon mal im voraus.
Fragend
Jonas
 

Haggele

Grünschnabel
ja das habe ich auch schon gesehen. Aber ich konnte mir eine Frage nicht beantworten, die mir sehr wichtig ist:
Funktioniert das auf jedem Rechner oder muss ich dafür JavaMail installiert haben?
 

sheel

I love Asm
Aus dem ersten Absatz im Link:
Nun, zunächst brauchen wir die aktuelle Version der JavaMail-API. Um euch die Suche zu erleichtern gebe ich euch hier den Link
...direkt danach ein Link zum Download.
Es steht zwar "Stand 2011" dabei,aber die verlinkte Seite hat die aktuelle Version auch im Angebot.

Du musst nichts "installieren" im eigentlichen Sinn,
es reicht, wenn die Datei bei deinem Programm dabei ist
(Ordentlicher Classpath vorausgesetzt, der auch von deinem Programm abhängt)
 

Haggele

Grünschnabel
Hallo zusammen,
vielen Dank erst mal. Gut erklärt. Aber ich bekomme folgende Fehlermeldung:

Exception in thread "main" com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. no2sm11329141bkb.15 - gsmtp

at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:2108)
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1609)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1117)
at SendMailTLS.main(SendMailTLS.java:28)


Mein code sieht wie folgt aus:

import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMailTLS {

public static void main(String[] args) throws Exception{

String host="smtp.gmail.com";
int port=587;
String user="xxx@gmail.com";
String pass="xxxxx";
Properties props=new Properties();
// Authentifizierung aktivieren
props.put("mail.smtp.auth", "true");
Session session=Session.getDefaultInstance(props);
Transport transport=session.getTransport("smtp");
transport.connect(host, port, user, pass);
Address[] addresses=InternetAddress.parse("xxx@live.de"); //.de****
Message message=new MimeMessage(session);
message.setFrom(new InternetAddress(user));
message.setRecipients(Message.RecipientType.TO, addresses);
message.setSubject("TEST SUBJECT");//Betreff
message.setText("text/plain BODY");//Textinhalt der Email
transport.sendMessage(message, addresses); //senden der Nachrricht
System.out.println("E-Mail gesendet");//Bestätigung
transport.close();

}

}


Ich hoffe jemand kann helfen.
 

sheel

I love Asm
Hi

stell sicher, dass du wirklich die Klassen der Jar-Datei verwendest
(also diese beim Kompilieren und Ausführen richtig im CP hast),
und dass du die neueste Version heruntergeladen hast

Eventuell ist auch ein smtps statt smtp bei session.getTransport nötig.

Bitte Netiquette beachten und Codetags verwenden.