# Email per Java senden



## Developer_X (8. Mrz 2009)

Hi, ich hab schon danach gegoogled, und in der Java INsel antworten gefunden, aber ich habe nicht "javax.java.internet" 
deswegen gehts net, kann mir einer einen Code zum verschicken einer Email per Java geben, 
die auf einem standard "JRE1.6.0_11",
der modernsten Version von Java, laufen kann??
Einige sinnvolle zeilen, kein code geschwafel, 
und keine links


----------



## slawaweis (8. Mrz 2009)

Developer_X hat gesagt.:


> Einige sinnvolle zeilen, kein code geschwafel,
> und keine links



JavaMail API documentation

[highlight="java"]

    Properties props = new Properties();
    props.put("mail.smtp.host", "my-mail-server");
    props.put("mail.from", "me@example.com");
    Session session = Session.getInstance(props, null);

    try {
        MimeMessage msg = new MimeMessage(session);
        msg.setFrom();
        msg.setRecipients(Message.RecipientType.TO,
                          "you@example.com");
        msg.setSubject("JavaMail hello world example");
        msg.setSentDate(new Date());
        msg.setText("Hello, world!\n");
        Transport.send(msg);
    } catch (MessagingException mex) {
        System.out.println("send failed, exception: " + mex);
    }

[/highlight]

hier kann man es runterladen:

JavaMail API

Slawa


----------



## fjord (8. Mrz 2009)

javax.java.internet kannst du auch nicht haben, weil es das nicht gibt. 
was du meinst ist javax.mail.internet?

Wenn du schon bei der Insel warst, solltest du eigentlich über den Hinweis gestolpert sein, wo es das gibt:



			
				Java Insel hat gesagt.:
			
		

> 18.12.4 Die JavaMail API
> Nachdem wir alles eher theoretisch betrachtet haben, sollen kleine Java-Programme folgen, die eine E-Mail abschicken und E-Mails empfangen können. Sie nutzen die JavaMail API, eine API und Referenzimplementierung von Sun, die zum Versenden und Empfangen von E-Mail entworfen wurde. Das Archiv, etwa javamail-1_4.zip, lässt sich unter JavaMail API beziehen und enthält das Java-Archiv mail.jar, das im Klassenpfad stehen muss. Zudem muss vor Java 6 das Archiv activation.jar für das JavaBeans Activation Framework [Zu beziehen unter JavaBeans Activation Framework.] ebenfalls mit in den Klassenpfad aufgenommen werden.


----------



## Developer_X (8. Mrz 2009)

danke leute!


----------



## Developer_X (8. Mrz 2009)

also ich hab das mal gemacht, aber ich weiß nicht was in deinem code "my-mail-server" heißen soll,
wenn dus mir sagen kannst, von folgenden EMail adressen wärs net:
yahoo.de
msn(hotmail)
t-online.de

Ich glaub das hängt von den einzelnen verschiedenen adressen hab, weiß aber nicht was ich da einfügen sollte, kansnt du mir bitte helfen?


----------



## fjord (8. Mrz 2009)

Für t-online


----------



## Developer_X (9. Mrz 2009)

die für t-online funzt, ich hab sogar ganze listen mit email SMTP Hosts, aber keine andere funktioniert, weil sie international sind, die für msn z.B. ist bei der einen Liste smtp.msn.com
und bei der anderen smtp.email.msn.com
aber keine von beiden funktioniert, wirklich keine ahnung, ob das auch noch mit dem ".com" zusammenhängt, auch wenn ich das is ein ".de" umwandle, gehts nicht wieso?

ich war auf folgenden Links:
SMTP Host
SMTP hosts

kann mir bitte einer eine richtige liste nennen, die für ".de" funktionieren?


----------



## Ebenius (9. Mrz 2009)

Was geht denn nicht?

Ebenius


----------



## Developer_X (9. Mrz 2009)

das hier geht z.B. nicht, ich will eine Mail an meine MSN Adresse schicken:

```
//Das addest du in eine Main Methode
Properties props = new Properties();   
 props.put("mail.smtp.host", "smtp.msn.com");   
 props.put("mail.from", "bsp@hotmail.de");  
  Session session = Session.getInstance(props, null); 
    try
 {    
    MimeMessage msg = new MimeMessage(session);  
      msg.setFrom();     
   msg.setRecipients(Message.RecipientType.TO, "bsp@hotmail.de");       
 msg.setSubject("JavaMail hello world example");       
 msg.setSentDate(new Date());      
  msg.setText("Hello, world!\n");       
 Transport.send(msg);  
  } 
catch (MessagingException mex) {System.out.println("send failed, exception: " + mex);}
}
```
wohin gegen das hier funktioniert:

```
Properties props = new Properties();   
 props.put("mail.smtp.host", "mailto.t-online.de");   
 props.put("mail.from", "bsp@t-online.de");  
  Session session = Session.getInstance(props, null); 
    try
 {    
    MimeMessage msg = new MimeMessage(session);  
      msg.setFrom();     
   msg.setRecipients(Message.RecipientType.TO, "bsp@t-online.de");       
 msg.setSubject("JavaMail hello world example");       
 msg.setSentDate(new Date());      
  msg.setText("Hello, world!\n");       
 Transport.send(msg);  
  } 
catch (MessagingException mex) {System.out.println("send failed, exception: " + mex);}
}
```


----------



## Der Müde Joe (9. Mrz 2009)

Send email with JavaMail - Real's Java How-to

kann man über t-online senden ohne ein Passwort einzugeben?

EDIT:


> Benutzername und Kennwort sind egal (können sogar komplett entfallen), da diese Möglichkeit nur funktioniert, wenn Sie über den T-Online-Zugang angemeldet sind.
> Diese Daten gelten nur, wenn Sie T-Online als einzelner Benutzer nutzen.



Also IP == Mailaccess?


----------



## Developer_X (9. Mrz 2009)

ich kann mit meinem programm eine email senden, auch ohne bei t-online angemeldet zu sein, diese email "bsp@t-online" is ein freund,


----------



## Ebenius (10. Mrz 2009)

Developer_X, bitte denk mit. Wenn ich frage "Was geht denn nicht?" was will ich dann wohl? Na?  Richtig. Eine Fehlerbeschreibung. Zum Beispiel: "Es kommt eine XYZException mit folgender Meldung und jenem StackTrace". Füg doch mal in den catch-Block "mex.printStackTrace();" ein und schreib uns die Ausgabe!

Ich nehme an, dass die anderen SMTP-Hosts SMTP-Authentifizierung verlangen und das teilen sie Dir normaler Weise auch mit. Wenn Du uns das mitteilst kommst Du weiter... So sind die Spielregeln. Ist doch ganz einfach, oder?

Ebenius


----------



## derMartin (10. Mrz 2009)

Vielleicht liegt es daran, dass einige Mail-Provider POP3 before SMTP haben. Das heißt, man muss erst via POP3 das Konto abfragen und danach kann man via SMTP senden.

Vielleicht hilft das ja.

Gruß
/Martin

(bei t-online ist das nicht der Fall, könnte sein, dass es daran liegt)


----------



## tuxedo (10. Mrz 2009)

Normalerweise hat man "seinen" Mailprovider mit SMTP Zugang.

Beim überfliegen dieses Threads erscheint's mir so, als wolle Developer_X für jede Ziel-Email-Domain einen anderen SMTp verwenden. Wieso ist mit unklar. Vielleicht unwissenheit?

Beispiel: Als web.de Emailkunde kann man über web.de's SMTP Server und seinen Zugangsdaten an jede beliebige Adresse Emails verschicken. Die Zustellung an "yahoo" im falle einer "@yahoo.com" Adresse übernimmt dann web.de ...

Aber vielleicht irre ich mich ja und es gibt einen Grund warum man unbedingt unterschiedliche SMTP Server braucht.

- Alex


----------



## derMartin (10. Mrz 2009)

Ja, aber bei web.de musst Du vorher eine Authentifizierung via POP machen, damit Du EMails über SMTP verschicken kannst.

Gruß
/Martin


----------



## tuxedo (10. Mrz 2009)

Haben die nicht auch schon SMTP-Auth?

POP-before-SMTP ist doch schon langsam "veraltet".

- Alex


----------



## Developer_X (10. Mrz 2009)

könnt ihr mir mal so eine pop3 smtp adresse nennen bitte?


----------



## tuxedo (10. Mrz 2009)

ROFL. Ich mach mir gleich in die Hose 

Das eine (POP3) hat erstmal nix mit dem anderen (SMTP) zu tun. Eine "pop3 smtp" Adresse gibt es nicht. 
Ich schlage vor du setzt deine Lesebrille auf und führst dir (ernsthaft) das hier zu gemüte:

Post Office Protocol ? Wikipedia
Simple Mail Transfer Protocol ? Wikipedia
SMTP-Auth ? Wikipedia

Und dann kommst du wieder und stellst eine passende Frage zu deinem "Problem".

Gruß
Alex


----------



## Developer_X (10. Mrz 2009)

tuxedo hat gesagt.:


> Normalerweise hat man "seinen" Mailprovider mit SMTP Zugang.
> 
> Beim überfliegen dieses Threads erscheint's mir so, als wolle Developer_X für jede Ziel-Email-Domain einen anderen SMTp verwenden. Wieso ist mit unklar. Vielleicht unwissenheit?
> 
> ...



Dann hab ich den falschen begriff benutzt, ich wollte eigentlich wissen, kannst du mir dann mal die SMTP Adresse für Web.de geben,
habe ich das richtig verstanden?
Wenn ich diese Adresse als SMTP adresse verwende, dann 
kann ich an all möglichen EMail adressen eine Email schreiben,???


----------



## Ebenius (10. Mrz 2009)

Developer_X hat gesagt.:


> könnt ihr mir mal so eine pop3 smtp adresse nennen bitte?


Schon wieder falsch verstanden. SMTP selbst hat keine Authentifizierungsmöglichkeit. Das heißt, ein nackiger SMTP Server verschickt einfach eine Email, ohne zu wissen, wer die sendet. Das ist natürlich ungünstig, weil diese offenen SMTP-Server für jeden der Spam verschicken will super ist.

POP3 hat Authentifizierung und stellt damit sicher, dass nur ein angemeldeter Benutzer seine eigenen Emails holen kann.

Einige Free-Mailer haben nun also das anonyme Versenden von Emails über deren SMTP-Server dadurch verhindert, dass der Server keine E-Mails annahm, es sei denn von der selben IP über die gesendet wird wurde innerhalb der letzten N Minuten Post vom hauseigenen POP3-Server abgeholt. Das Verfahren nennt sich _POP before SMTP_.

Glücklicher Weise hat sich jemand SMTP-Auth ausgedacht; das ist SMTP mit Benutzername/Passwort-Authentifizierung. Damit benötigt man dieses furchtbare POP before SMTP nicht mehr.

Und jetzt erleuchte uns mal: Warum willst Du über so viele verschiedene SMTP-Server Emails ohne Benutzerkennung verschicken? Was soll denn das Programm inhaltlich eigentlich machen?

Ebenius


----------



## Ebenius (10. Mrz 2009)

Developer_X hat gesagt.:


> Dann hab ich den falschen begriff benutzt, ich wollte eigentlich wissen, kannst du mir dann mal die SMTP Adresse für Web.de geben,
> habe ich das richtig verstanden?
> Wenn ich diese Adresse als SMTP adresse verwende, dann
> kann ich an all möglichen EMail adressen eine Email schreiben,???


Da war mein anderer Beitrag schon raus... Kannst Du nicht auch Onkel google benutzen, wie wir alle? Lass mich das mal bei Google suchen... (der erste Treffer)

Ebenius


----------



## Developer_X (10. Mrz 2009)

Das Programm soll in der "main.methode" eine e-mail an "okraster@hotmail.de" senden können.
Ich habe im Internet so viel Quelcodes gefunden, die sich alle meist differenzieren, ich weiß nicht mehr weiter, 
wie ich eine e-mail an eine "@hotmail.de" adresse senden soll.
Verstehst du`?


----------



## tuxedo (10. Mrz 2009)

Developer_X hat gesagt.:


> Dann hab ich den falschen begriff benutzt, ich wollte eigentlich wissen, kannst du mir dann mal die SMTP Adresse für Web.de geben,
> habe ich das richtig verstanden?
> Wenn ich diese Adresse als SMTP adresse verwende, dann
> kann ich an all möglichen EMail adressen eine Email schreiben,???



smtp.web.de

Geht aber nur wenn du bei web.de registriert bist. "Anonym" lässt dich kein Provider mehr EMails verschicken. "Mailbomben" sind mit öffentlichen Providern also nicht zu realisieren ohne dass die wissen wer's verursacht hat (Nur für den Fall dass das deinen Intention war/ist).

- Alex


----------



## tuxedo (10. Mrz 2009)

Developer_X hat gesagt.:


> Das Programm soll in der "main.methode" eine e-mail an "okraster@hotmail.de" senden können.
> Ich habe im Internet so viel Quelcodes gefunden, die sich alle meist differenzieren, ich weiß nicht mehr weiter,
> wie ich eine e-mail an eine "@hotmail.de" adresse senden soll.
> Verstehst du`?



Wer ist denn Absender dieser Email? Du selbst? Wenn ja: wie lautet deine Emailadresse hinter dem "@" ?

- Alex


----------



## Developer_X (10. Mrz 2009)

Also ich selbst möchte eine email absenden, und zwar von "okraster@hotmail.de"
an eine beliebige adresse, senden.
also Endung
"@hotmail.de"


----------



## Ebenius (10. Mrz 2009)

In dem Falle hast Du ein Hotmail-Konto und musst auch über Hotmail's SMTP-Server senden. Das könnte dieser sein: smtp.live.com , ich bin aber nicht sicher.

Ebenius


----------



## tuxedo (10. Mrz 2009)

Developer_X hat gesagt.:


> Also ich selbst möchte eine email absenden, und zwar von "okraster@hotmail.de"
> an eine beliebige adresse, senden.
> also Endung
> "@hotmail.de"



D.h. du bist inhaber einer Hotmail-Emailadresse. 
So, dannmusst du jetzt zu Hotmail gehen, dort in die Hilfe schauen wie deren SMTP Server heisst, und ob der "SMTP-Auth" beherrscht. Sprich: Ob du beim Senden Benutzername und Passwort angeben musst,

ODER

ob Hotmail VOR dem Senden einer Email zur Identifikation deinerseits erstmal EMAILS von dir abgerufen haben will (POP-before-SMTP).

All das erfährst du auf der Hotmail-Hilfeseite. Da ich Hotmail-Gegner bin kann ich dir da auch nciht weiter helfen. Sign In und Google sind deine Freunde 

Wenndu rausgefunden hast ob SMTP-Auth oder POP-before-SMTP, dann fütterst du google mit

"javax.mail" und "smtp-auth"

oder

"javax.mail" und "pop before smtp".

Dann erst wieder probieren (und nicht stur code kopieren). Und wenn du dann ein Problemhast, dann darfst du mit einer detailierten Frage und nach möglichkeit mit einer Fehlerbeschreibung und Stracktraces wieder kommen.

- Alex


----------



## Developer_X (10. Mrz 2009)

wenn ich das einsetzte,"smtp.live.com" dann kommt eine andere fehlermeldung, die ist unter diesem link zu finden, ihr müsst auf sie klicken um sie zuschärfen
https://java-rayman.dev.java.net/files/documents/9616/127742/Error.JPG


----------



## tuxedo (10. Mrz 2009)

*Kopfschüttel* Nicht einfach stur einsetzen und nach dem Try&Error Prinzip arbeiten. Hirn einschalten und lesen ...

- Alex


----------



## Developer_X (10. Mrz 2009)

so ich hab mich bisschen schlau gemacht, msn hat überhaupt keine smtp adresse,
nur yahoo, usw...
kein MSN bzw. WINDOWS LIVE
ich hab zum glück eine E-MAIL bei Yahoo, 
Hier steht, ich muss mich authentifizieren bei Yahoo:
E-Mail-Server Adressen von Yahoo
so wie wenn ich fragen darf kann ich das in meinem Code visualisieren?
Tuxedo damit du auch mal siehst das ich den Code kapiert habe werde ich ihn jetzt stück für stück so erklären wie ich ihn verstanden habe:
CLASS MAIL
[highlight="java"]
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
//das waren die imports
public class Mail 
{
  public static void postMail( String recipient, // String den man angeben muss für den empfänger die email
                               String subject, // String den man angeben muss für den Titel der email
                               String message,  // String den man angeben muss für den inhalt der email
                               String from ) //String den man angeben muss für den sender die email
    throws MessagingException
  {
//Da verstehe ich eher weniger
    Properties props = new Properties();props.put( "mail.smtp.host", "smtp.mail.yahoo.com" ); 
// in den zweiten string der klammer muss auf jeden fall der smtp host

    Session session = Session.getDefaultInstance( props );

    Message msg = new MimeMessage( session );
//Hier wird der String "from" abgefragt
    InternetAddress addressFrom = new InternetAddress( from );
    msg.setFrom( addressFrom );
//Hier wird der String "recipient" abgefragt
    InternetAddress addressTo = new InternetAddress( recipient );
    msg.setRecipient( Message.RecipientType.TO, addressTo );
//Hier wird der String subject abgefragt
    msg.setSubject( subject );
//usw
    msg.setContent( message, "text/plain" );
    Transport.send( msg );
  }
//... Die Main Methode
}
[/highlight]
MAINT METHODE
[highlight="java"]
public static void main(String[]args)
{
// der void "postmail" wird hier nun verwendet
postMail( "gasd@yahoo.de", //Empfänger an wen soll die Email gehen?
              "Tolles Buch", // Titel der Email
              "Wow. Das Buch ist schön zu lesen", //Inhalt der Email
              "gasd@yahoo.de"); // Absender von wem kam die Email?
}
[/highlight]
Aber um yahoo als mail server zu nutzten, muss man erstmal seinen namen bis zum "@" angeben und das passwort, wie geht das?


----------



## tuxedo (10. Mrz 2009)

Ich glaub du musst noch ne Menge lernen. Ein Teil davon ist das vollständige lesen, der andere davon das benutzen von Google.

Wie sendet man mit javax.mail und SMTP-Auth eine Email: http://snippets.dzone.com/posts/show/3328


Du brauchst also so ein Session-Objekt, welches einen Authenticator, sowie passende Properties inne hat. Zum senden an sich dann noch ein "Transport" und schon ist man fertig.

Alles in allem ist das für einen Anfänger nicht ganz trivial und easy. Aber mit lesen und verstehen der dazugehöriogen JavaDOC sollte es nach Zeit X dann doch klappen. Man braucht dazu allerdings etwas geduld...

- Alex


----------



## Vayu (10. Mrz 2009)

er muss vor allem noch lernen, dass man keine real existierenden email adressen in öffentliche Foren posted ^^ zumindest nicht wenn man nicht 10mal soviel spam bekommen möchte wie vorher.


----------



## tuxedo (10. Mrz 2009)

Da ist was dran ...


----------



## Developer_X (10. Mrz 2009)

danke dieser Code dort könnte mir helfen, wobei sich einige fragen aufwerfen:

```
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

public class Mail{
	public static void main(String[] args) throws MessagingException 
                 {
		new Mail().run();
	}

	private void run() throws MessagingException {
		Message message = new MimeMessage(getSession());

		message.addRecipient(RecipientType.TO, new InternetAddress("gasd@yahoo.de"));//to
		message.addFrom(new InternetAddress[] { new InternetAddress("gasd@yahoo.de") });//from

		message.setSubject("the subject");
		message.setContent("the body", "text/plain");

		Transport.send(message);
	}

	private Session getSession() {
		Authenticator authenticator = new Authenticator();

		Properties properties = new Properties();
		properties.setProperty("mail.smtp.submitter", authenticator.getPasswordAuthentication().getUserName());
		properties.setProperty("mail.smtp.auth", "true");

		properties.setProperty("mail.smtp.host", "smtp.mail.yahoo.com");
//Alle bisher klar, und alle eingegeben, aber was soll die "25"? Soll ich die ändern oder was weiß ich?
		properties.setProperty("mail.smtp.port", "25");

		return Session.getInstance(properties, authenticator);
	}

	private class Authenticator extends javax.mail.Authenticator {
		private PasswordAuthentication authentication;

		public Authenticator() {
			String username = "gasd@yahoo.de";
//Password sag ich euch nicht! Sorry
			String password = "passwordsagichnicht!";
			authentication = new PasswordAuthentication(username, password);
		}

		protected PasswordAuthentication getPasswordAuthentication() {
			return authentication;
		}
	}
}
```


----------



## Developer_X (10. Mrz 2009)

die email gibts auch nicht, damit ihr jetzt trotzdem nicht was schlechtes denkt, habe ich die email umgewandelt im "gasd@yahoo.de"


----------



## derMartin (10. Mrz 2009)

25 ist der Port für SMTP. So wie 80 der Standardport für die HTTP Übertragung ist.

Gruß
/martin


----------



## Developer_X (10. Mrz 2009)

danke, sehr, aber wieso geht das immer noch nciht?!


----------



## Ebenius (10. Mrz 2009)

Developer_X hat gesagt.:


> danke, sehr, aber wieso geht das immer noch nciht?!


Bitte sehr, aber wieso hast Du immer noch nicht gelernt, vernünftig Fehler zu beschreiben? Was glaubst Du was Du für ne Antwort bekommst?

 Ebenius


----------



## Developer_X (10. Mrz 2009)

Ja ich hab ganz wenig erfahrung damit,
mal im ernst, ihr seid doch solch große experten, da
werdet ihr mir doch bei einer von eurem blickwinkel aus betrachtetem
mickrigem Problem helfen können!


----------



## Ebenius (10. Mrz 2009)

Du raffst es nicht, oder? Beschreib den Fehler... Mit "aber wieso geht das immer noch nciht?!" kann kein Mensch etwas anfangen.

Ebenius


----------



## Developer_X (10. Mrz 2009)

ok, also 
als fehlermeldung kommt da:
exeption in thread main
also da is was falsch in der main
 SMTPSSendFailedExeption: 530...
for help fo to I'm getting errors when trying to receive POP mail. What's wrong?

das letzte sollte kein link sein, hat sich automatisch so eingestellt sory


----------



## Ebenius (10. Mrz 2009)

Was der error code 530 bedeutet erfährt man, wenn man google fragt: "smtp error 530". Dann bekommt man als ersten Treffer: What do the SMTP error / reply codes mean? (SMTP errors).

Dort findet man dann:


> 530	Must issue a STARTTLS command first - encryption required for requested authentication mechanism.



Das bedeutet, der SMTP-Server erwartet TLS-Verschlüsselung. Dort setzt Du als nächstes an.

Anbei: Ich hab keine Ahnung vom Mail versenden unter Java. Aber ich bin Software-Entwickler und gehe meine Probleme entsprechend an. Bei jedem Problem das Du hast: Guck genau auf die Fehlerbeschreibung und überleg Dir, welche Informationen Dir weiter helfen. "530" Error und SMTP sind -- wie Du siehst -- genug Information, um einen Schritt weiter zu kommen. Wenn Du den Fehler ignorierst und nur denkst "Das geht nicht" und keinem sagst, was genau denn nicht geht, dann bekommst Du kaum Hilfe.

Jetzt hast Du also herausgefunden, dass der SMTP-Server ein STARTTLS erwartet das nicht kommt. Der nächste Schritt ist, herauszufinden, wie TLS mit javax-mail funktioniert. Deine Hilfsmittel sind (am besten in dieser Reihenfolge) wikipedia: TLS (herausfinden was das eigentlich ist), dann Forensuche und/oder google wie das ganze mit der javax.mail-API funktioniert. Wenn Du dann konkrete Fragen hast und Dein Fehlerbild mit etwas mehr Sorgfalt beschreibst, wirst Du weiter Hilfe bekommen.

Wie geht's nun weiter?

PS: Denk immer daran: Je schlechter Du den Fehler beschreibst, umso schlechter kann jemand im Forum *Dir bei Deinem* Problem helfen. Und als ob das nicht genug wäre: Wenn Du Dir nicht genug Mühe gibst, Deine Fehler zu beschreiben, machst Du denen die nicht schon aufgegeben haben, Dir zu helfen, unnötig mehr Aufwand. So funktioniert ein Forum nunmal nicht. Das ist unfair und das sollte Dir doch auch klar sein. Also Augen auf und erst denken, dann schreiben, dann lesen und dann nochmal darüber nachdenken, ob das was Du schreibst, jemand anderem hilft, Dir zu helfen.

Ebenius


----------



## Spacerat (11. Mrz 2009)

...und um das im Beitrag von Ebenius geschriebene noch mal zu verschlimmern...
@Developer_X: Für mich ist es inzwischen unvorstellbar, und Ich frage mich ernsthaft, was dich dazu bewegt, Java zu lernen. Schlussfolgend kann ich nur sagen, dass es keine freiwilligen Beweggründe sein können. Denn wenn du ernsthaft freiwillig Java lernen willst, müsste eine gewisse Lernbereitschaft, schon allein wegen dem Spass an der Sache, vorhanden sein. Diese ist aber leider keineswegs erkennbar. Und mal ganz von den "larifari" Fehlerbeschreibungen abgesehen, bekomme ich langsam das Gefühl, als liesset du uns hier, bzw. die von denen du "deine" Quelltexte beziehst, deine Anwendungen schreiben. Geht irgendwie nicht, das nach der Lösung des einen Problems, zwei Zeilen später im Code gleich ein neues auftaucht. Irgendwann muss man mal soweit sein, dass man das, was man als Lösung vorgeschlagen bekommt, auch selber versteht. Dann kommt man hier da und dort auch schon mal ganz von alleine drauf. Letztendlich bräuchte ich dann auch keinen "Homer"-Button mehr ;-).

P.S.: der Link unterm Smiley ist, bis auf die Tatsache, dass er von mir kommt, nichts persönliches. Dient nur ner allg. erquickung.


----------



## Developer_X (11. Mrz 2009)

So, nach längeren Versuchen hab ichs jetzt raus, mit meinem alten grundgerüst des Quellcodes 
habe ich es nun endlich geschafft eine Email zu senden, von meiner T-online adresse,
an eine beliebige andere.
Wenn ich das nun mit meiner yahoo adresse machen will, geht das nciht, weil 
ich nicht eingeloggt bin, ich muss in mein Java Programm irgendwie das Passwort eingeben, damit er über meine email adresse eine email schreiben kann, 
nur wie könnte ich das machen, mit den "props" ?
Wer noch mal das Grundgerüst sehen will:

```
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

public class SendJavaMail
{
  public static void postMail( String recipient,
                               String subject,
                               String message, String from )
    throws MessagingException
  {
    Properties props = new Properties();
    props.put( "mail.smtp.host", "smtp.mail.yahoo.com" );

    Session session = Session.getDefaultInstance( props );

    Message msg = new MimeMessage( session );

    InternetAddress addressFrom = new InternetAddress( from );
    msg.setFrom( addressFrom );

    InternetAddress addressTo = new InternetAddress( recipient );
    msg.setRecipient( Message.RecipientType.TO, addressTo );

    msg.setSubject( subject );
    msg.setContent( message, "text/plain" );
    Transport.send( msg );
  }

  public static void main( String args[] ) throws Exception
  {
    postMail( "bsp@yahoo.de",
              "Tolles Buch",
              "Wow. Das Buch ist schön zu lesen",
              "bsp@yahoo.de");
  }
}
```
Die SMTP_SERVER_Adresse ist:
smtp.mail.yahoo.com 

Ich vermute, so wie man das mit dem SMTP Server macht, also:
	
	
	
	





```
props.put( "mail.smtp.host", "mail.java-tutor.com" );
```
muss es auch mit der email gehen vielleicht in die richtung?
	
	
	
	





```
props.put( "mail.smtp.code", "Password" );
```
auf jeden fall denke ich dass es an dieser stelle liegen muss.


----------



## tuxedo (11. Mrz 2009)

An alle die nicht Developer_x heissen:

ich gluab wir reden gegen ne Wand. Da gibt man den Tipp wie man SMTP-Auth umsetzt, gibt noch Hinweise bugl. fehlendem StartTLS und was macht der Fragesteller? Ignoriert alles, geht 3 Schritte zurück, stellt fest dass man bei T-Online kein SMTP-Auth braucht (glaub die erkennen das an der DSL-Einwahl oder so) probiert gleichen Code wieder mit Yahoo, wo das nunmal nicht geht, und stellt fest dass es "oh wunder oh wunder" noch immer nicht geht. Das ist, sorry für den Ausdruck, so erbärmlich dass ich für mich jetzt beschließe den Thread zu verlassen. ;( Alle wichtigen Infos wurden denke ich vorgebracht. Jetzt hilft nur noch :rtfm: bis irgendwann mal zur :idea: kommt. 

Ein Schlusssatz noch an Developer_X: 

Dich kann man einigermaßen mit einem Fahhrad-Fahranfänger vergleichem der vor hat mit einem Formel1 Wagen zurecht zu kommen. Wieso probierst du's nicht erstmal mit einem Dreirad oder Fahrrad mit Stützrädern. Da ist alles noch überschaubar einfach in der Handhabung und du kommst damit schneller ans Ziel. 

In diesem Sinne: :rtfm: hat noch niemandem geschadet.

gruß
Alex


----------



## Vayu (11. Mrz 2009)

ich würde ihn eher mit Homer vergleichen, der 10mal nacheinander wieder in die Steckdose fasst, weil er nicht begreift, dass das AUA aus der Dose kommt 

und was mir schon öfter aufgefallen ist, wenn die postings zu lang sind, liest er sie nicht durch und ignoriert sie. Steht hingegen nur quellcode drin oder sind sie max. 3 Zeilen lang werden sie gelesen.


----------



## Developer_X (11. Mrz 2009)

sorry, 
wenn ichs damit versuche klappts auch nicht, 

```
import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

public class Mail
{
	public static void main(String[] args) throws MessagingException {
		new Mail().run();
	}

	private void run() throws MessagingException {
		Message message = new MimeMessage(getSession());

		message.addRecipient(RecipientType.TO, new InternetAddress("bsp@hotmail.de"));
		message.addFrom(new InternetAddress[] { new InternetAddress("bsp@yahoo.de") });

		message.setSubject("the subject");
		message.setContent("the body", "text/plain");

		Transport.send(message);
	}

	private Session getSession() {
		Authenticator authenticator = new Authenticator();

		Properties properties = new Properties();
		properties.setProperty("mail.smtp.submitter", authenticator.getPasswordAuthentication().getUserName());
		properties.setProperty("mail.smtp.auth", "true");

		properties.setProperty("mail.smtp.host", "smtp.mail.yahoo.com");
		properties.setProperty("mail.smtp.port", "25");

		return Session.getInstance(properties, authenticator);
	}

	private class Authenticator extends javax.mail.Authenticator {
		private PasswordAuthentication authentication;

		public Authenticator() {
			String username = "email";//Muss ich hier nun die email, die email bis zum at oder die email bis zum at und das at dazu?
			String password = "passwort";//hier muss man das passwort eingeben, soweit wie ich den code verstanden habe
			authentication = new PasswordAuthentication(username, password);
		}

		protected PasswordAuthentication getPasswordAuthentication() {
			return authentication;
		}
	}
}
```


----------



## Ebenius (11. Mrz 2009)

Developer_X hat gesagt.:


> wenn ichs damit versuche klappts auch nicht


Selber Fehler oder ganz anderer? 530?

Ebenius


----------



## Developer_X (11. Mrz 2009)

les mal meine kommentare im quellcode


----------



## Developer_X (11. Mrz 2009)

mein Fehler an dich ebenius:
exeption in thread "main"  javax.mail.AuthenticationFailedExeption: failed to connect
und dann ein paar
at javax.mail....
anzeigen


----------



## Ebenius (11. Mrz 2009)

Poste mal den ganzen StackTrace. Tipp: Rechts oben auf dem Icon der Konsole rechts klicken. Eigenschaften ändern: Irgendwo im Dialog gibt's "Quick Edit Mode" oder so ähnlich... Wenn Du das aktivierst kannst Du in der Konsole mit der Maus markieren und mit rechtsklick kopieren und einfügen. Dann sparst Du Dir das abtippen/Screenshot machen.

Ebenius


----------



## Developer_X (11. Mrz 2009)

wenn ich den quick edit modus erlaube, dann kann ich es trotzdem nicht kopieren,
also ich glaube das liegt daran dass ich vista habe, ich habs abgetippt:

```
Exeption in thread "main" javax.mailAuthenticationFailedException: failed to connect
at javax.mail.Service.connect<Service.java:322>
at javax.mail.Service.connect<Service.java:172>
at javax.mail.Service.connect<Service.java:121>
at javax.mail.Transport.send0<Transport.java:190>
at javax.mail.Transport.send<Transport.java:120>
at Mail.run<Mail.java:27>
at Mail.main<Mail.java:15>
```


----------



## Developer_X (11. Mrz 2009)

ich habs doch geschafft:

```
F:\>F:

F:\>set PATH=C:\Programme\Java\jdk1.6.0_11\bin; C:\Windows\system32;C:\Windows;C
:\Windows\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Ha
ufe\iDesk\iDeskService\;C:\Program Files\T-Online\T-Online_Software_6\Basis-Soft
ware\Basis2\;C:\DJGPP\BIN;C:\Program Files\Common Files\Nero\Lib\;C:\Program Fil
es\Common Files\Nero\Lib\

F:\>F:

F:\>javac -cp F:\Imports\mail.jar;  Mail.java

F:\>java -cp F:\Imports\mail.jar;  Mail
Exception in thread "main" javax.mail.AuthenticationFailedException: failed to c
onnect
        at javax.mail.Service.connect(Service.java:322)
        at javax.mail.Service.connect(Service.java:172)
        at javax.mail.Service.connect(Service.java:121)
        at javax.mail.Transport.send0(Transport.java:190)
        at javax.mail.Transport.send(Transport.java:120)
        at Mail.run(Mail.java:27)
        at Mail.main(Mail.java:15)

F:\>pause
Drücken Sie eine beliebige Taste . . .
```
PS: Ich hab die Klasse "Mail.java" auf der Festplatte "F:/" gespeichert
außerdem habe ich die "mail.jar" auf einem angelegten ordner namens 
"Imports"


----------



## Der Müde Joe (11. Mrz 2009)

????

Mach dir ein Gmail Account...
schreib dir die Daten auf....Password und deine Addresse.
Trag sie im Code unten ein und hoppla:

```
import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.sun.mail.smtp.SMTPSSLTransport;

class SimpleMail {
    public static void main(String[] args) throws Exception{
      Session session = Session.getDefaultInstance(new Properties());
      Transport transport  = new SMTPSSLTransport(session, new URLName("smtp","smtp.gmail.com", 465, null,"DEVELOPPER_X_ACCOUNT@gmail.com","PASSWORT"));

      Message message = new MimeMessage(session);
      message.setSubject("Testing javamail plain");
      message.setContent("This is a test", "text/plain");
      message.addRecipient(Message.RecipientType.TO,new InternetAddress("WOHIN@SIESOLL.DE"));

      transport.connect();
      transport.sendMessage(message, message.getAllRecipients());
      transport.close();
    }
}
```


----------



## Developer_X (11. Mrz 2009)

danke "der müde Joe" geht das nur mit Gmail acoounts?
Ich habs mal mit meinem Yahoo probiert geht aber net, bist du dir sicher dass man einen GMail account dafür braucht?


----------



## Ebenius (11. Mrz 2009)

Ich wiederhole mal wieder meine Frage: Mit welcher Fehlermeldung geht es denn diesmal nicht?

Ebenius


----------



## Der Müde Joe (11. Mrz 2009)

das weiss ich nicht...bei Gmail tuts weil der Port stimmt und die SSL wollen...und ichs getestet habe
vielleich mit 
new SMTPTransport(session, new URLName("smtp","yahoo.weiss.ich.nicht", 25, null,"DEVELOPPER_X_ACCOUNT@yahoo.com","PASSWORT"));


----------



## Developer_X (11. Mrz 2009)

bei der fehlermeldung von der Müde Joe?

```
F:\>F:

F:\>set PATH=C:\Programme\Java\jdk1.6.0_11\bin; C:\Windows\system32;C:\Windows;C
:\Windows\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Ha
ufe\iDesk\iDeskService\;C:\Program Files\T-Online\T-Online_Software_6\Basis-Soft
ware\Basis2\;C:\DJGPP\BIN;C:\Program Files\Common Files\Nero\Lib\;C:\Program Fil
es\Common Files\Nero\Lib\

F:\>F:

F:\>javac -cp F:\Imports\mail.jar;  Mail3.java

F:\>java -cp F:\Imports\mail.jar;  Mail3
Exception in thread "main" javax.mail.AuthenticationFailedException: failed to c
onnect
        at javax.mail.Service.connect(Service.java:322)
        at javax.mail.Service.connect(Service.java:172)
        at javax.mail.Service.connect(Service.java:121)
        at Mail3.main(Mail3.java:20)

F:\>pause
Drücken Sie eine beliebige Taste . . .
```


----------



## Ebenius (11. Mrz 2009)

Port 465 ist auch bei yahoo richtig, steht in dem Dokument was Developer_X oben verlinkt hat.

Ebenius


----------



## Developer_X (11. Mrz 2009)

ne andere Zahl bringt da nichts der Müde Joe,
da kommt dann die fehler meldung:

```
F:\>F:

F:\>set PATH=C:\Programme\Java\jdk1.6.0_11\bin; C:\Windows\system32;C:\Windows;C
:\Windows\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Ha
ufe\iDesk\iDeskService\;C:\Program Files\T-Online\T-Online_Software_6\Basis-Soft
ware\Basis2\;C:\DJGPP\BIN;C:\Program Files\Common Files\Nero\Lib\;C:\Program Fil
es\Common Files\Nero\Lib\

F:\>F:

F:\>javac -cp F:\Imports\mail.jar;  Mail3.java

F:\>java -cp F:\Imports\mail.jar;  Mail3
Exception in thread "main" javax.mail.MessagingException: Exception reading resp
onse;
  nested exception is:
        javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connecti
on?
        at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java
:1764)
        at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1523)
        at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:45
3)
        at javax.mail.Service.connect(Service.java:291)
        at javax.mail.Service.connect(Service.java:172)
        at javax.mail.Service.connect(Service.java:121)
        at Mail3.main(Mail3.java:20)
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext conne
ction?
        at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(InputRec
ord.java:523)
        at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:355)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.j
ava:789)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SS
LSocketImpl.java:1096)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketIm
pl.java:744)
        at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:
75)
        at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:106)
        at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
        at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
        at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:84)
        at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java
:1742)
        ... 6 more

F:\>pause
Drücken Sie eine beliebige Taste . . .
```


----------



## Developer_X (11. Mrz 2009)

also es muss an der zahl liegen, wenn ihr versteht was ich meine...


----------



## Der Müde Joe (11. Mrz 2009)

in dieser Zeit hab ich einen Account bei yahoo erstellt und eine Mail verschickt:

```
import java.util.Properties;

import javax.mail.Address;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.sun.mail.smtp.SMTPSSLTransport;

class SimpleMail {
    public static void main(String[] args) throws Exception{
      Session session = Session.getDefaultInstance(new Properties());
      Transport transport  = new SMTPSSLTransport(session, new URLName("smtp","smtp.mail.yahoo.com", 
465, null,"und wg ist sie","und das passwort ist auch weg"));

      Message message = new MimeMessage(session);
      message.setSubject("Testing javamail plain");
      message.setContent("This is a test", "text/plain");
      message.addRecipient(Message.RecipientType.TO,new InternetAddress("XXXX"));
      message.addFrom(new Address[]{new InternetAddress("dito hier...nix mehr da")});

      transport.connect();
      transport.sendMessage(message, message.getAllRecipients());
      transport.close();
    }
}
```

EDIT:
den Account darfste behalten


----------



## Developer_X (11. Mrz 2009)

geht immer noch nicht:

```
F:\>F:

F:\>set PATH=C:\Programme\Java\jdk1.6.0_11\bin; C:\Windows\system32;C:\Windows;C
:\Windows\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Ha
ufe\iDesk\iDeskService\;C:\Program Files\T-Online\T-Online_Software_6\Basis-Soft
ware\Basis2\;C:\DJGPP\BIN;C:\Program Files\Common Files\Nero\Lib\;C:\Program Fil
es\Common Files\Nero\Lib\

F:\>F:

F:\>javac -cp F:\Imports\mail.jar;  Mail3.java

F:\>java -cp F:\Imports\mail.jar;  Mail3
Exception in thread "main" javax.mail.AuthenticationFailedException: failed to c
onnect
        at javax.mail.Service.connect(Service.java:322)
        at javax.mail.Service.connect(Service.java:172)
        at javax.mail.Service.connect(Service.java:121)
        at Mail3.main(Mail3.java:23)

F:\>pause
Drücken Sie eine beliebige Taste . . .
```


----------



## Developer_X (11. Mrz 2009)

oh doch und danke


----------



## Developer_X (11. Mrz 2009)

moment einmal, wenn ich dort meine Email und mein Passwort eingebe,
dann funktioniert es nicht

```
F:\>F:

F:\>set PATH=C:\Programme\Java\jdk1.6.0_11\bin; C:\Windows\system32;C:\Windows;C
:\Windows\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Ha
ufe\iDesk\iDeskService\;C:\Program Files\T-Online\T-Online_Software_6\Basis-Soft
ware\Basis2\;C:\DJGPP\BIN;C:\Program Files\Common Files\Nero\Lib\;C:\Program Fil
es\Common Files\Nero\Lib\

F:\>F:

F:\>javac -cp F:\Imports\mail.jar;  Mail3.java

F:\>java -cp F:\Imports\mail.jar;  Mail3
Exception in thread "main" javax.mail.AuthenticationFailedException: failed to c
onnect
        at javax.mail.Service.connect(Service.java:322)
        at javax.mail.Service.connect(Service.java:172)
        at javax.mail.Service.connect(Service.java:121)
        at Mail3.main(Mail3.java:23)

F:\>pause
Drücken Sie eine beliebige Taste . . .
```


----------



## Der Müde Joe (11. Mrz 2009)

na dann...viel spass an deinem neuen email account..

ich lösch ihn dann gleich ;-)

und weg isser

EDIT:
oh das geht gar nicht...na dann...passwort ändern und vergessen


----------



## Developer_X (11. Mrz 2009)

was mach ich denn falsch, 
@der müde joe
ich meinte meine eigene
nicht die ich von dir habe


----------



## Developer_X (11. Mrz 2009)

diese nummer, wie heißt die für Yahoo`?


----------



## Der Müde Joe (11. Mrz 2009)

>diese nummer, wie heißt die für Yahoo`? 

welche Nummer ? Der Port? wohl auch 465.....

PS Dein Account ist weg! (den von mir erstellten mein ich)

>was mach ich denn falsch, 

Das weiss wohl niemand hier.


----------



## Developer_X (11. Mrz 2009)

ich hab mich bei Gmail registriert,
gigi2d3@gmail.com
der code funzt net wieso?
Ich mach wirklich alles so wie ihr es mir beigebracht habt

```
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.sun.mail.smtp.SMTPSSLTransport;

class Mail3 
 {
    public static void main(String[] args) throws Exception{
      Session session = Session.getDefaultInstance(new Properties());
      Transport transport  = new SMTPSSLTransport(session, new URLName("smtp","smtp.gmail.com", 465, null,"gigi2d3@gmail.com","hagesbarn"));

      Message message = new MimeMessage(session);
      message.setSubject("Testing javamail plain");
      message.setContent("This is a test", "text/plain");
      message.addRecipient(Message.RecipientType.TO,new InternetAddress("gigi2d3@gmail.com"));

      transport.connect();
      transport.sendMessage(message, message.getAllRecipients());
      transport.close();
    }
}
```
FehlerMeldung:

```
F:\>F:

F:\>set PATH=C:\Programme\Java\jdk1.6.0_11\bin; C:\Windows\system32;C:\Windows;C
:\Windows\System32\Wbem;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Ha
ufe\iDesk\iDeskService\;C:\Program Files\T-Online\T-Online_Software_6\Basis-Soft
ware\Basis2\;C:\DJGPP\BIN;C:\Program Files\Common Files\Nero\Lib\;C:\Program Fil
es\Common Files\Nero\Lib\

F:\>F:

F:\>javac -cp F:\Imports\mail.jar;  Mail3.java

F:\>java -cp F:\Imports\mail.jar;  Mail3
Exception in thread "main" javax.mail.MessagingException: can't determine local
email address
        at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1154)
        at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:735)
        at Mail3.main(Mail3.java:22)

F:\>pause
Drücken Sie eine beliebige Taste . . .
```
Warum?
Was mache ich falsch?!
mein Passwort ist "hagesbarn".
was mache ich falsch ?


----------



## Der Müde Joe (11. Mrz 2009)

kein From....keine Mail....

(geht bei mir da..lese InternetAddress.getLocaleAddress(session)..)


----------



## Developer_X (11. Mrz 2009)

also ich bitte euch drum, irgendeiner von euch muss doch wissen, ein code fragment, mit dem man eine email versenden kann, im code fragment muss dann natürlich der absender und das passwort des absender enthalten sein, aber irgendeiner muss mir doch einen solchen vorzeigen können. Bitte


----------



## Developer_X (11. Mrz 2009)

kannst du mir dann sagen wie ich den code ändern soll, bitte?


----------



## Developer_X (11. Mrz 2009)

die daten sind korrekt, das ist nur eine testemail adresse. probiers bei dir aus, gehts bei dir?


----------



## Der Müde Joe (11. Mrz 2009)

>, gehts bei dir? 

ja (lese InternetAddress.getLocaleAddress(session). Linux kann das halt...

>kein From....keine Mail....

siehe oben....code von yahoo..... kein From = kein Mail

message.addFrom(new Address[]{new InternetAddress("gigi2d3@gmail.com")});

(wobei bin mir da nicht 100% sicher...evtl auch in die Props...siehe IntenetAddress.getLocaleAddress(session))


----------



## Ebenius (11. Mrz 2009)

Developer_X, wie der müde Joe Dir schon sagte: Du musst auch "FROM" setzen, mit Message.setFrom(Address). Der SMTP-Server sagt Dir das ja auch.

Ebenius


----------



## Developer_X (12. Mrz 2009)

danke ebenius, das war was mir gefehlt hat jetzt klappts!
Danke vielen dank an euch alle,an eure vielen bemühungen!


----------



## HannsW (12. Mrz 2009)

Wie kommst Du eigentlich auf den schönen Namen DEVELOPER_X?
Ich habe mal von einem Assembler -Programmierer gelesen, daß


> 10% aller Progarmmiere sind in der Lage, ein ihnen gestelltes Problem direkt am computer zu lösen.. Unglücklicherweise glauben 90% aller Programmierer zu diesen 10 % zu gehören


und





> Was ist das erste, das man macht, wenn man ein neues Programm schreiben will? .. Den Computer ausschalten!



Ich lese Threads in einem Forum auch deshalb gern, weil man imm noch was lernen  kann. Aber wie Du auf die Antworten reagierst, das macht mich schon zornig: Da geben sich ne Menge Leute Mühe, Dir weiter zu helfen, und Du hast es nicht nötig, ihre Aussagen zu verinnerlichen, und mal Dein Gehirn einzuschalten und nachzudenken.
Ich werde jedenfalls nie mehr Threads von Developer_x verfolgen.

Musste ich einfach loswerden
Hanns


----------



## Spacerat (12. Mrz 2009)

HannsW hat gesagt.:


> Du hast es nicht nötig, ihre Aussagen zu verinnerlichen, und mal Dein Gehirn einzuschalten und nachzudenken.


Was ist, wenn er das nicht kann? Immerhin gibt es sehr viele Menschen mit Lernbehinderungen (Lernbarrieren). Wenn Developer_X nun einer dieser vielen ist, arbeitet sein Gehirn bereits auf Hochtouren und er kann für seinen "Blödsinn" eigentlich nichts. Leider wäre sein Gehirn dann nur noch darauf fixiert, stets einen effektiveren Weg, als die konventionellen (z.B. RTFM) zu finden, und weder Otto-Normal noch Willi-Hochgebildet (von Beruf Psycho-Therapeut) könnten ihn davon überzeugen, das der erste, bereits als ineffektiv eingestufte Weg genau der Ansatz ist der zum Ziel führt. Naja... vllt. kann euch ein Bekannter von mir (Legasteniker, hochintelligent aber begriffsstuzig) besser mitteilen, welchen Eindruck ich von Developer_X gewonnen habe, oder vllt. hilft da auch "googlen". Erkennbar ist das aber an der Art der Fragestellung (Einzahl, den esgibt nur eine: "Was mache ich falsch?"). Den guten Mann aber gleich links liegen zu lassen, ist eine weniger gute Tat. Vllt. kann man Developer_X mal dazu überreden, sich dazu in seinem Profil zu äussern. Düfte aber schwierig sein, weil die meisten Menschen in diesen Situationen verständlicherweise nicht gerne darüber sprechen.


----------



## HannsW (12. Mrz 2009)

Spacerat hat gesagt.:


> Den guten Mann aber gleich links liegen zu lassen, ist eine weniger gute Tat. Vllt. kann man Developer_X mal dazu überreden, sich dazu in seinem Profil zu äussern. Düfte aber schwierig sein, weil die meisten Menschen in diesen Situationen verständlicherweise nicht gerne darüber sprechen.


DA gebe ich Dir schon Recht. Aber: Lese ich insbesondere Ebenius Antworten, in denen der den Devolper_nix (?)  quasi mit der Nase auf die Probleme stubst, und man an der Reaktion merkt, daß D nit "brachialer Gewalt" seine ( nicht erkannten ) Probleme lösen will, wobei lösen schon übertrieben ist, dann erscheint es mir doch hoffnungslos. Sich in auf dem Lösungsweg zu verrennen, kann jeden passieren, aber eine hilfreich ausgestreckte Hand zu ignorieren...

Naja, vielleicht liest D ja unsere posts, und geht mal schrittweise und nachdenkend zu Werke.


----------



## Vayu (13. Mrz 2009)

HannsW hat gesagt.:


> Naja, vielleicht liest D ja unsere posts, und geht mal schrittweise und nachdenkend zu Werke.



das glaube ich nicht Hanns


----------



## Spacerat (13. Mrz 2009)

...nun, ich auch nicht... Wie gesagt... wenn ich richtig liege, ist sein Gehirn ist mit anderen Dingen beschäftigt, und keiner weis genau womit. Was wir nur wissen, sein Weg ist falsch und wir können es ihm sagen sooft wir wollen.
Es macht auch keinen Sinn ihm zu sagen, ganz von vorne anzufangen. Folgendes:
1. DX hat eine Idee...
2. DX liest hier, da und dort etwas darüber, wie er die Idee umsetzen kann. Mehr larifari, mit Kleinigkeiten hat man sich ja schon befasst.
3. Beispiele in der Lektüre werden erstmal (sammt Tippfehlern) kopiert und getestet. Die Tippfehler sind dabei Fatal! Beispiel wird als unbrauchbar registriert. In der frühen Anfangsphase macht DX einen noch drauf aufmerksam, das er das schon getestet hatte, später (im Mom. der Ist-Zustand) werden Hilfestellungen, die sich auf dieses Beispiel beziehen nur noch ignoriert.
4. Wie eine KI rennt DX nun fortwährend gegen eine Wand (im Prinzip die Wand gegen die wir als Helfer reden). Einer KI könnte man nun (per Methoden-Einbindung) sagen: "Fang dort hinten, wo du schon warst von neuem an.". DX ist keine KI, für Ihn gibt's kein Zurück. Der "Wahn" nimmt seinen Lauf.
5. Das was jetzt hilft ist eigentlich nur die Lieferung des fehlerhaften Beispiel-Codes, funktionierend auf sein Problem bezogen.

Tja... diese Lernbarriere gibt es halt bei Legastenikern. DX ist aber wohl keiner, er schreibt ja meist alles mehr oder weniger richtig (eben anders als ein Legasteniker). Vllt. ist DX ja mal gewillt eine KI zu proggen (@DX: lass es lieber...), damit er erkennt, das ihm dieses hier fehlt (Zeile 11):
	
	
	
	





```
class KI
{
  public boolean walk()
  throws WallException
  {
    do {
      boolean target = false;
      try {
        target = walk();
      } catch(WallException we) {
        target = findAnotherWay(); // z.B. turnLeft(), turnRight() oder rtfm()
      }
    } while(!target);
    return target;
  }
}
```


----------

