Ja nee, is klar:
Du startest telnet. Was darunter kommt, hätte eigentlich in ein Batchskript für telnet gehört, denn diese Befehle übergibst du nicht der CMD sondern telnet. Die Batch kriegt aber die CMD, und die kratzt sich dann ganz ernsthaft und besorgt am Kopf. Was du willst, geht so hier:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| copy /q nul tmp.txt && rem Alte tmp.txt überschreiben. Mit nix. :: Jetzt schreiben wir einfach mal die Befehle auf, die telnet kriegen soll echo helo >> tmp.txt echo mail from:me@example.org >> tmp.txt echo rcpt to:you@example.org >> tmp.txt echo data >> tmp.txt echo Subject:Just a test >> tmp.txt echo. >> tmp.txt echo Hi you, >> tmp.txt echo this is just a test, so don't worry 'bout it. >> tmp.txt echo . >> tmp.txt :: So, dass ist jetzt cool, du schreibst die Befehlsdatei auf den stdout und legst den stdin von telnet auf den stdout von type :: Ergebnis: Telnet kriegt die ganzen Befehle ab und sendet sie type tmp.txt|telnet 127.0.0.1 25 |
Ich hab das jetzt aus dem Bauch heraus geschrieben, kann sein, dass es nicht klappt. Obwohl ich das weniger glaube.
Tschö,
nullplan
P.S.: Warum machst du das eigentlich nicht mit Sockets? Geht viel einfacher als telnet zu quälen. Einfach einen Socket auf 127.0.0.1:25 und dann geht sie ab, die Post. Sende aber am Ende der Befehle immer einen Zeilenumbruch (Zeichenfolge #13#10) mit, weil sonst die Befehle nicht abgesendet werden. Wenn du es genauer wissen willst:
www.c-worker.ch . Ja, die Beispiele sind in C, aber das wird doch wohl zu übersetzen sein. So schwer ist es nicht.
Ich fahr' nicht selber, weil ich festgestellt habe: ich fahre zu emotional. Bin 180 gefahren wo 30 erlaubt war... -- Jürgen von der Lippe