PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mail ohne mailserver



mithras
19.08.02, 13:07
ist es möglich von einem einfachen linux rechner aus, eine mail zu schicken, ohne das auf diesem rechner ein mailserver installiert ist?
wenn ja, wie?

melody lee
19.08.02, 13:11
Indem Du ein Mailprogramm verwendest, das das kann. KMail kann das, IIRC.

mithras
19.08.02, 13:13
hm jo, lol.
meinte das etwas anders,
ich möchte das ganze von einem c programm aus machen, ohne auf ein vorhandes mail programm zugreifen zu müssen

melody lee
19.08.02, 13:16
Ok, ich seh's ein. Kmail ist in C++ geschrieben. Wie wärs mit "mail" elm" oder "mutt"? Die sind in C geschrieben.
Worauf willst Du hinaus? Ich verstehs immer noch nicht.

mithras
19.08.02, 13:19
also wenn ich auf dem rechner keinen lokalen mailserver installed habe, dann muss ich mich wohl auf einen server im netz einloggen, und dann über den die mail verschicken.
gibt es dazu nich irgendwie eine möglichkeit direkt in C quasi auf einen mailserver zuzugreifen?

melody lee
19.08.02, 13:24
Wie in C? Ich kann mir beim besten Willen nicht vorstellen, dass es dafür eine Funktion gibt
Eben dafür sind ja "Mailserver" da, schliesslich liegt da noch ein ganzes Protokoll drunter.

bernie
19.08.02, 13:50
Hi,

schreib mal was du genau machen willst, ich hab zwar glaub ich die Idee überrissen, aber wenns stimmt, programmierst du da ein paar Wochen dran:)

Ciao, Bernie

mithras
19.08.02, 13:57
also gut:
angenommen ich hab einen zugangsaccount zu einem mailserver.
dann will ich mittles eines c programms auf diesen webserver zugreifen und eine mail versenden.

oder auch einfach eben, mit einem C programm eine email versenden, ohne darauf angewiesen zu sein, dass de rechner einen mailserver installed hat

Maruu
19.08.02, 14:02
Ich will mich nicht einmischen da ich nicht so viel davon verstehe aber ich denk du verwechselst Mailserver und Mailprogramm. Du willst einfach mit einem C Programm, ohne irgend ein anderes Programm auf dem Rechner wo das C Programm läuft, einen Text verfasssen und den z.B. dann über GMX zu senden. Z.B. bekomm ich dann dein Programm das dann, auf meinem Linuxrechner auf dem keinerlei Mailserver, Mailprogramm ... installiert ist, laufen soll und dir z.B. Servicemails schicken soll??

MFG

Maruu

Röme
19.08.02, 14:04
In C kenne ich mich leider nicht aus.
In Java geht das problemlos mit der Mail-API, oder sonst über eine normale TCP-Socket-Verbindung.
So etwas wird es doch in C auch geben?

Gruss
Röme

mithras
19.08.02, 14:05
jo genau Maruu.
das willl ich so machen, aber wie geht das?

Maruu
19.08.02, 14:08
Gute Frage wie das geht ich kenn mich auch nicht damit aus sorry bin eher auf Delphi spezialisiert. Aber wie wärs wenn ihr euch zusammentut der eine Schreibt ein kleines Java Prog dass die Daten per Übergabewerte (Parameter) beim Aufruf mitbekommt und der Rest wird in C gemacht??

MFG

Maruu

bernie
19.08.02, 14:09
Hi,

OK, Ich kenn mich zwar jetzt mit Mail/WebServern in deiner Beschreibung nicht aus, aber zu dem C-Programm kann ich was sagen.

Wenn du komplett unabhänging von Mailservern sein willst:
Annahme die Ziel-Adresse heist: ziel@host.com

1.) Über die DNS-Lib den MX-Record für host.com herausfinden.
2.) Die IP zu diesem MX-Record finden.
3.) Einen TCP-Socket auf die IP-Adresse aufmachen, Port25
4.) (E)SMTP-"sprechen" (!!Errorhandling!!)
5.) Connection schliessen

Wenn du einen Mail-Account hast:

1.) Connection zu dem Mailserver aufmachen ( siehe 3.) )
2.) SMTP-Sprechen (Authentifizierung??)
3.) Connection schliessen.

Mit ein bisschen Glück findest du eine SMTP-Library

Ciao, Bernie

PS: Viel Spaß beim Programmieren. ;)

mithras
19.08.02, 14:10
mööp :)
sicher keine schlechte idee, aber ich wollte das dennoch irgendwie in c lösen.
theoretisch kann ich ja über telnet ne mail senden (angenommen port 23 ist offen)
dann müsste ich "nur" telnet mit dem c proggi ansprechen und die jehweiligen daten übergeben, aber ob das geht ??

melody lee
19.08.02, 14:13
Als Einstieg kannst Du bei google schon mal nach "RFC 821" gucken...
Aber bis das programmiert ist, hast Du auch gelernt die komplette "sendmail.cf" per Hand zu editieren. ;o)

mithras
19.08.02, 14:17
von Maruu:

"Wenn du einen Mail-Account hast:

1.) Connection zu dem Mailserver aufmachen ( siehe 3.) )
2.) SMTP-Sprechen (Authentifizierung??)
3.) Connection schliessen.

Mit ein bisschen Glück findest du eine SMTP-Library"

hört sich doch gut an. nur wie mache ich den Port 25 auf?? das prob ist dass der zu den well-known ports gehört, da kann ich nicht einfach über die funktione socket() und bind() das machen...

naja und 2. is natürlich auch noch die frage wie das alles ablaufen soll *g

melody lee
19.08.02, 14:23
Schau doch einfach im Source irgendeines MTA nach, wie die das machen.

bernie
19.08.02, 16:25
Hi,

Du sollst ja auch keinen Mailserver schreiben!! Als Client machst du natürlich nicht Port25 auf!! Sondern einen unpriviligierten. Die ganzen SMTP-Befehle findest du in den RFCs.

Ciao, Bernie

edit: Port25

melody lee
19.08.02, 16:47
Du sollst ja auch keinen Mailserver schreiben!!
och... so'n klitzekleiner MTA, der nur die nötigsten Features für's Heimnetz und Weiterleitung an den Provider bietet und mit 5 Zeilen (narren)sicher und zu kofigurieren wäre... ;o)