ERLEDIGT
NEIN
NEIN
ANTWORTEN
14
14
ZUGRIFFE
361
361
EMPFEHLEN
-
21.12.10 20:51 #1
Hallo ich möchte gerne ein programm schreiben oder quellcode haben das eine email versendet ich habe schon den link gehabt:
http://www.online-tutorials.net/netz...s-t-18-23.html
aber der funktioniert bei mir nicht ich habe alles richtig gemacht auch mailadresse absender alles!
Mein mailprogramm: Windows Mail (nicht Windows live Mail!!)
Ich verwende MSVC++
OS:Windows Vista
Hoffe das sind alle angaben
Danke schonmal im Voraus!
-
Um eine Mail versenden zu können musst du dich erstmal mit dem SMTP Protokoll auseinander setzen.
Wenn du das kennst, dann kannst du selbst die Kommunikation mit dem Mailserver schreiben und brauchst keine fertigen Funktionen die du nicht kapierst. Brauchst allerdings noch Kentnisse in Winsock. Also Windows-Sockets. Weiß nicht wieviel du dich schon in der Netztwerk-Programmierung auskennst.
Falls du keine Ahung von dem allen hast, empfehle ich dir erstmal bei NULL anzufangen. Richtig C/C++ programmieren, Netzwerkprogrammierung (Winsock) und dann des SMTP-Protokoll. Ich kann dir dabei gerne helfen, da ich selbst schon einen Mailclient komplett selbst geschrieben habe, ohne irgendwelche fertigen Funktionen oder Bibliotheken.
grüßeWenn meine Antwort nützlich bzw. hilfreich war, würde ich mich sehr über eine Bewertung bzw. ein Danke sehr freuen.
Danke euch
Programmiere in C, C++ auf Windows XP, Vista und Windows 7
Spezialisiert auf Netzwerkprogrammierung, WinAPI uvm.
-
22.12.10 14:22 #3
das wäre nett wenn du mir hilfst
Danke
aber hast du nicht einen fertigen code****
-
Wir sind hier um zu helfen, nicht um die arbeit von anderen zu machen.
Wenn du beim Mailprogrammieren nicht weiter kommst, dann helfen wir dir gerne.
ABER nicht wenn du keine Bock hast dich damit auseinander zu setzen und einfach nur Code willst, den du am Schluss nicht mal kapierst. Ich könnte dir in den Code auch einen Trojaner mit einprogrammieren und du würdest es vllt nicht mal merken und beim Kompilieren und Ausführen hättest du einen auf deinem System. So als Beispiel
...
http://www.c-worker.ch/tuts.php
Diese Tutorial weißt dich in die Socket-Programmierung ein. Ist sehr gut finde ich
Und zum SMTP-Protokoll findest du auch sehr viel bei google...
grüßeWenn meine Antwort nützlich bzw. hilfreich war, würde ich mich sehr über eine Bewertung bzw. ein Danke sehr freuen.
Danke euch
Programmiere in C, C++ auf Windows XP, Vista und Windows 7
Spezialisiert auf Netzwerkprogrammierung, WinAPI uvm.
-
22.12.10 14:34 #5
Das mit dem trojaner würd ich schon merken

Ich fress mich mal durch dann meld ich mich nochmal....
Danke Schön
-
22.12.10 16:51 #6
Ich hab jetzt schon geschafft mit server und client zu arbeiten erste fortschritte
-
22.12.10 17:18 #7
ich hab jetzt ne frage an crash kid :
ich hab den code als Client:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
#include <windows.h> #include <winsock2.h> #include <stdio.h> //Prototypen int startWinsock(void); long getAddrFromString(char* hostnameOrIp, SOCKADDR_IN* addr); int main(int argc, char** argv) { long rc; SOCKET s; SOCKADDR_IN addr; char buf[256]; if(argc<2) { printf("Usage: sock <hostname oder ip des servers>\n"); return 1; } // Winsock starten rc=startWinsock(); if(rc!=0) { printf("Fehler: startWinsock, fehler code: %d\n",rc); return 1; } else { printf("Winsock gestartet!\n"); } // Socket erstellen s=socket(AF_INET,SOCK_STREAM,0); if(s==INVALID_SOCKET) { printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError()); return 1; } else { printf("Socket erstellt!\n"); } // Verbinden memset(&addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten addr.sin_family=AF_INET; addr.sin_port=htons(12345); // wir verwenden mal port 12345 rc=getAddrFromString(argv[1],&addr); if(rc==SOCKET_ERROR) { printf("IP für %s konnte nicht aufgeloest werden\n", argv[1]); return 1; } else { printf("IP aufgeloest!\n"); } rc=connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR)); if(rc==SOCKET_ERROR) { printf("Fehler: connect gescheitert, fehler code: %d\n",WSAGetLastError()); return 1; } else { printf("Verbunden mit 127.0.0.1..\n"); } // Daten austauschen while(rc!=SOCKET_ERROR) { printf("\nZeichenfolge eingeben [max 256]: "); gets(buf); send(s,buf,strlen(buf),0); rc=recv(s,buf,256,0); if(rc==0) { printf("Server hat die Verbindung getrennt..\n"); break; } if(rc==SOCKET_ERROR) { printf("Fehler: recv, fehler code: %d\n",WSAGetLastError()); break; } buf[rc]='\0'; printf("\nServer antwortet: %s\n",buf); } closesocket(s); WSACleanup(); return 0; } int startWinsock(void) { WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa); } long getAddrFromString(char* hostnameOrIp, SOCKADDR_IN* addr) { long rc; unsigned long ip; HOSTENT* he; /* Parameter prüfen */ if(hostnameOrIp==NULL || addr==NULL) return SOCKET_ERROR; /* eine IP in hostnameOrIp ? */ ip=inet_addr(hostnameOrIp); /* bei einem fehler liefert inet_addr den Rückgabewert INADDR_NONE */ if(ip!=INADDR_NONE) { addr->sin_addr.s_addr=ip; return 0; } else { /* Hostname in hostnameOrIp auflösen */ he=gethostbyname(hostnameOrIp); if(he==NULL) { return SOCKET_ERROR; } else { /*die 4 Bytes der IP von he nach addr kopieren */ memcpy(&(addr->sin_addr),he->h_addr_list[0],4); } return 0; } }
und server ist:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
#include <winsock2.h> #include <windows.h> #include <stdio.h> #pragma comment( lib, "ws2_32.lib") //Prototypen int startWinsock(void); int main() { long rc; SOCKET acceptSocket; SOCKET connectedSocket; SOCKADDR_IN addr; char buf[256]; char buf2[300]; // Winsock starten rc=startWinsock(); if(rc!=0) { printf("Fehler: startWinsock, fehler code: %d\n",rc); return 1; } else { printf("Winsock gestartet!\n"); } // Socket erstellen acceptSocket=socket(AF_INET,SOCK_STREAM,0); if(acceptSocket==INVALID_SOCKET) { printf("Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n",WSAGetLastError()); return 1; } else { printf("Socket erstellt!\n"); } // Socket binden memset(&addr,0,sizeof(SOCKADDR_IN)); addr.sin_family=AF_INET; addr.sin_port=htons(12345); addr.sin_addr.s_addr=ADDR_ANY; rc=bind(acceptSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN)); if(rc==SOCKET_ERROR) { printf("Fehler: bind, fehler code: %d\n",WSAGetLastError()); return 1; } else { printf("Socket an port 12345 gebunden\n"); } // In den listen Modus rc=listen(acceptSocket,10); if(rc==SOCKET_ERROR) { printf("Fehler: listen, fehler code: %d\n",WSAGetLastError()); return 1; } else { printf("acceptSocket ist im listen Modus....\n"); } // Verbindung annehmen connectedSocket=accept(acceptSocket,NULL,NULL); if(connectedSocket==INVALID_SOCKET) { printf("Fehler: accept, fehler code: %d\n",WSAGetLastError()); return 1; } else { printf("Neue Verbindung wurde akzeptiert!\n"); } // Daten austauschen while(rc!=SOCKET_ERROR) { rc=recv(connectedSocket,buf,256,0); if(rc==0) { printf("Server hat die Verbindung getrennt..\n"); break; } if(rc==SOCKET_ERROR) { printf("Fehler: recv, fehler code: %d\n",WSAGetLastError()); break; } buf[rc]='\0'; printf("Client sendet: %s\n",buf); sprintf(buf2,"Du mich auch %s",buf); rc=send(connectedSocket,buf2,strlen(buf2),0); } closesocket(acceptSocket); closesocket(connectedSocket); WSACleanup(); return 0; } int startWinsock(void) { WSADATA wsa; return WSAStartup(MAKEWORD(2,0),&wsa); }
Wenn ich jetzt server starte klapt alles dann starte ich client und der client schliesst sich sofort wieder aber der server wartet immernoch auf eine verbindung
Was ist der fehler?
-
Was kommt beim Client für ne Fehlermeldung? Vermutlich kann er irgendwas nicht initialisieren.
Die Winsock oder bekommt keinen Socket mehr. Es gibt mehrere möglichkeiten.Wenn meine Antwort nützlich bzw. hilfreich war, würde ich mich sehr über eine Bewertung bzw. ein Danke sehr freuen.
Danke euch
Programmiere in C, C++ auf Windows XP, Vista und Windows 7
Spezialisiert auf Netzwerkprogrammierung, WinAPI uvm.
-
22.12.10 17:23 #9
das sehe ich nett der schliest sich sofort wieder das ist aber der original clien code von der seite die dur mir geschikt hast Teil 2 relativ unten:
http://www.c-worker.ch/tuts/resolv.php
-
Ich hab ihn gerade kompiliert und schau auch grad. Der macht bei mir des selbe.
//Edit: hau die erste überprüfung von argc<2 raus.Wenn meine Antwort nützlich bzw. hilfreich war, würde ich mich sehr über eine Bewertung bzw. ein Danke sehr freuen.
Danke euch
Programmiere in C, C++ auf Windows XP, Vista und Windows 7
Spezialisiert auf Netzwerkprogrammierung, WinAPI uvm.
-
22.12.10 17:39 #11
Hast du vll ne lösung?
Ich find kein problem
-
Hab ich doch schon in meiner Antwort hinzugefügt.
Du musst die erste überprüfung rausnehmen mit dem argc<2.
Dann startet er den Winsock und erstellt erfolgreich nen Socket. Kommt bei mir zumindest.Wenn meine Antwort nützlich bzw. hilfreich war, würde ich mich sehr über eine Bewertung bzw. ein Danke sehr freuen.
Danke euch
Programmiere in C, C++ auf Windows XP, Vista und Windows 7
Spezialisiert auf Netzwerkprogrammierung, WinAPI uvm.
-
22.12.10 17:53 #13
sorry aber bei mir geht gerade garnichts mehr am rechner der hats sich eben aufgehängt
das wegen hab ich gefragt
-
OK. Also heute werd ich dir dann nicht mehr helfen können, aber morgen wieder. Du kannst mir auch per privater Nachricht deine MSN oder ICQ adresse geben. Dann gehts besser als über das Forum.
grüßeWenn meine Antwort nützlich bzw. hilfreich war, würde ich mich sehr über eine Bewertung bzw. ein Danke sehr freuen.
Danke euch
Programmiere in C, C++ auf Windows XP, Vista und Windows 7
Spezialisiert auf Netzwerkprogrammierung, WinAPI uvm.
-
22.07.11 13:44 #15
So nach sehr langem rumprobieren mit CrashKid hat es dann auch noch geklappt!
Jetzt hab ich auch noch GUI Drin mit WINAPI und nicht mehr DosBox!
MFG
PS Ich weis der Thread ist Alt aber naja musste halt sein
Fehlermeldung bitte!
Google - Dein Freund und Helfer
Ähnliche Themen
-
PHP mail() Server verweigert den Versand der Mail mit response 530
Von Klopfer im Forum PHPAntworten: 1Letzter Beitrag: 22.02.10, 15:57 -
Java Mail API / Spring Mail: Verwendung eines ganz normalen SMTP Servers?
Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 2Letzter Beitrag: 01.08.09, 15:55 -
Mail kommt wenn sie von einem Server geschckt wird als HTML mail an, bei anderem nur
Von -GS-Master im Forum PHPAntworten: 4Letzter Beitrag: 19.04.07, 20:57 -
mail() - Inhalt der Mail aus einer Datei auslesen, mit Daten aus der db füllen
Von schultze im Forum PHPAntworten: 3Letzter Beitrag: 27.01.07, 18:35 -
Wie kann ich aus VB ein Mail versenden, auf dem kein Mail-Client installiert ist?
Von RoebiH im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 18.03.04, 20:53





Zitieren
Login






