Problem beim versenden einer Email
-
Tolga schrieb:
PS: Aber du hast sicher nciht ganz Unrecht. Die sache mitm Linux/Windows-Unterschied was das verlangen nach '\n\r' angeht ist mir auhc bekannt.
<erbsenzähl>Nimm lieber '\r\n', es sei denn du hast einen Mac.
</>
Das mit den unterschiedlichen Zeilenumbrüchen ist nur bei ASCII-Text-Dateien entscheidend. Die werden, wenn der Editor unfähig ist, auf einem anderen System als dem erzeugenden falsch dargestellt.
Deswegen gibt es z.B bei FTP den Text-Modus zum Übertragen von Dateien. Dabei sagt der Client, welche Umbrüche er gerne hätte, und der Server kümmert sich dann ums konvertieren.Bei allgemein anerkannten Protokollen wie SMTP wäre es aber etwas umständlich und fehleranfällig, wenn ein Server alle Arten von Zeilenumbrüchen akzeptieren und konvertieren müsste. Deswegen hat man sich halt auf '\r\n' geeinigt.
-
In der RFC steht ganz klar "\r\n", vollkommen egal welches OS.
Jeder SMTP-Server, der sich nicht an die RFC821 hält, ist entweder von Microsoft oder kein SMTP-Server.
Basta.
-
Hy Leute,
ich habe versucht den Quelltext zu ompilieren, aber ich bekomme immer irgendwelche Linker-Errors.
Hier sind die Meldungen:
Compiler: Default compiler
Führt g++.exe... aus
g++.exe "C:\Dokumente und Einstellungen\Lippy\Desktop\mail.cpp" -o "C:\Dokumente und Einstellungen\Lippy\Desktop\mail.exe" -I"C:\Dev-Cpp\include\c++\3.3.1" -I"C:\Dev-Cpp\include\c++\3.3.1\mingw32" -I"C:\Dev-Cpp\include\c++\3.3.1\backward" -I"C:\Dev-Cpp\lib\gcc-lib\mingw32\3.3.1\include" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:\DOKUME1\Lippy\LOKALE1\Temp/ccg9baaa.o(.text+0x191f):mail.cpp: undefined reference toWSAStartup@8' C:\\DOKUME~1\\Lippy\\LOKALE~1\\Temp/ccg9baaa.o(.text+0x1971):mail.cpp: undefined reference to
socket@12'
C:\DOKUME1\Lippy\LOKALE1\Temp/ccg9baaa.o(.text+0x19ac):mail.cpp: undefined reference toWSACleanup@0' C:\\DOKUME~1\\Lippy\\LOKALE~1\\Temp/ccg9baaa.o(.text+0x19d0):mail.cpp: undefined reference to
inet_addr@4'
C:\DOKUME1\Lippy\LOKALE1\Temp/ccg9baaa.o(.text+0x19e5):mail.cpp: undefined reference tohtons@4' C:\\DOKUME~1\\Lippy\\LOKALE~1\\Temp/ccg9baaa.o(.text+0x1a0f):mail.cpp: undefined reference to
connect@12'
C:\DOKUME1\Lippy\LOKALE1\Temp/ccg9baaa.o(.text+0x1a40):mail.cpp: undefined reference toWSACleanup@0' C:\\DOKUME~1\\Lippy\\LOKALE~1\\Temp/ccg9baaa.o(.text+0x1ad9):mail.cpp: undefined reference to
send@16'C:\DOKUME1\Lippy\LOKALE1\Temp/ccg9baaa.o(.text+0x1bbf):mail.cpp: undefined reference to
send@16' C:\\DOKUME~1\\Lippy\\LOKALE~1\\Temp/ccg9baaa.o(.text+0x1c5e):mail.cpp: undefined reference to
send@16'
C:\DOKUME1\Lippy\LOKALE1\Temp/ccg9baaa.o(.text+0x1d03):mail.cpp: undefined reference tosend@16' C:\\DOKUME~1\\Lippy\\LOKALE~1\\Temp/ccg9baaa.o(.text+0x1dd6):mail.cpp: undefined reference to
send@16'
C:\DOKUME1\Lippy\LOKALE1\Temp/ccg9baaa.o(.text+0x1e7d):mail.cpp: more undefined references to `send@16' followAusführung beendet
Können die Fehler vielleicht auch an einer header Datei liegen???
Lippy
-
Du hast vermutlich vergessen ws2_32.lib zu linken.
-
Hy Leute,
wie linkt man den diese Bibliothek???
Etwa so: #pragma comment (lib, "ws2_32.lib") ???
Lippy
-
lippy schrieb:
Hy Leute,
wie linkt man den diese Bibliothek???
Etwa so: #pragma comment (lib, "ws2_32.lib") ???
Lippy
Ja.
Wenn du das einfach ausprobiert hättest, hätte sich deine Frage erübrigt.
-
lippy schrieb:
Hy Leute,
wie linkt man den diese Bibliothek???
Etwa so: #pragma comment (lib, "ws2_32.lib") ???
Lippy
Das Visual Studio kann das so, ja.
Ob Dein Compiler das auch so versteht, weiß ich nicht. Das wird die Dokumentation Deines Compilers sicherlich klären können.
-
Hier ist mein Quellcode:
#include <iostream> #include <windows.h> #include "winsock2.h" #pragma comment (lib, "ws2_32.lib") using namespace std; int main() { //---------------------- // Initialize Winsock WSADATA wsaData; int iResult = WSAStartup(MAKEWORD(2,2), &wsaData); if (iResult != NO_ERROR) cout << "Konnte Winsock nicht initialisieren" << endl; //---------------------- // Create a SOCKET for connecting to server SOCKET ConnectSocket; ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (ConnectSocket == INVALID_SOCKET) { cout << "Konnte Socket nicht erstellen!" << endl; WSACleanup(); return 0; } //---------------------- // The sockaddr_in structure specifies the address family, // IP address, and port of the server to be connected to. sockaddr_in clientService; clientService.sin_family = AF_INET; clientService.sin_addr.s_addr = inet_addr("213.203.xxx.xxx"); clientService.sin_port = htons(25); //---------------------- // Connect to server. if (connect(ConnectSocket, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) { cout << "Konnte Verbindung nicht herstellen" << endl; WSACleanup(); return 0; } cout << "Verbind zum Server steht!" << endl; //WSACleanup(); char sendData[1024] = "HELO bla\n"; send(ConnectSocket, sendData, strlen(sendData), 0); cout << "Folgendes wurde gesendet: \"" << sendData << "\"."; Sleep(500); char sendData0[1024] = "MAIL FROM:<board@nuxxxx.de>\n"; send(ConnectSocket, sendData0, strlen(sendData0), 0); cout << "Folgendes wurde gesendet: \"" << sendData0 << "\"."; Sleep(500); char sendData1[1024] = "RCPT TO:<webmaster@nuxxxx.de>\n"; send(ConnectSocket, sendData1, strlen(sendData1), 0); cout << "Folgendes wurde gesendet: \"" << sendData1 << "\"."; Sleep(500); char sendData2[1024] = "DATA\n"; send(ConnectSocket, sendData2, strlen(sendData2), 0); cout << "Folgendes wurde gesendet: \"" << sendData2 << "\"."; Sleep(500); char sendData3[1024] = "Blah blah blah...\n"; send(ConnectSocket, sendData3, strlen(sendData3), 0); cout << "Folgendes wurde gesendet: \"" << sendData3 << "\"."; Sleep(500); char sendData4[1024] = ".\n"; send(ConnectSocket, sendData4, strlen(sendData4), 0); cout << "Folgendes wurde gesendet: \"" << sendData4 << "\"."; return 0; }
Ich benutze den Bloodsheet Dev C++!
Aber die Fehlermeldungen lauten bei den verschiedensten Programmen die was mit mailen zu tun haben:
Compiler: Default compiler
Führt g++.exe... aus
g++.exe "C:\Dokumente und Einstellungen\Lippy\Desktop\mail.cpp" -o "C:\Dokumente und Einstellungen\Lippy\Desktop\mail.exe" -I"C:\Dev-Cpp\include\c++\3.3.1" -I"C:\Dev-Cpp\include\c++\3.3.1\mingw32" -I"C:\Dev-Cpp\include\c++\3.3.1\backward" -I"C:\Dev-Cpp\lib\gcc-lib\mingw32\3.3.1\include" -I"C:\Dev-Cpp\include" -L"C:\Dev-Cpp\lib"
C:\DOKUME1\Lippy\LOKALE1\Temp/ccyIbaaa.o(.text+0x191f):mail.cpp: undefined reference toWSAStartup@8' C:\\DOKUME~1\\Lippy\\LOKALE~1\\Temp/ccyIbaaa.o(.text+0x1971):mail.cpp: undefined reference to
socket@12'
C:\DOKUME1\Lippy\LOKALE1\Temp/ccyIbaaa.o(.text+0x19ac):mail.cpp: undefined reference toWSACleanup@0' C:\\DOKUME~1\\Lippy\\LOKALE~1\\Temp/ccyIbaaa.o(.text+0x19d0):mail.cpp: undefined reference to
inet_addr@4'
C:\DOKUME1\Lippy\LOKALE1\Temp/ccyIbaaa.o(.text+0x19e5):mail.cpp: undefined reference tohtons@4' C:\\DOKUME~1\\Lippy\\LOKALE~1\\Temp/ccyIbaaa.o(.text+0x1a0f):mail.cpp: undefined reference to
connect@12'
C:\DOKUME1\Lippy\LOKALE1\Temp/ccyIbaaa.o(.text+0x1a40):mail.cpp: undefined reference toWSACleanup@0' C:\\DOKUME~1\\Lippy\\LOKALE~1\\Temp/ccyIbaaa.o(.text+0x1ad9):mail.cpp: undefined reference to
send@16'C:\DOKUME1\Lippy\LOKALE1\Temp/ccyIbaaa.o(.text+0x1bbf):mail.cpp: undefined reference to
send@16' C:\\DOKUME~1\\Lippy\\LOKALE~1\\Temp/ccyIbaaa.o(.text+0x1c5e):mail.cpp: undefined reference to
send@16'
C:\DOKUME1\Lippy\LOKALE1\Temp/ccyIbaaa.o(.text+0x1d03):mail.cpp: undefined reference tosend@16' C:\\DOKUME~1\\Lippy\\LOKALE~1\\Temp/ccyIbaaa.o(.text+0x1dd6):mail.cpp: undefined reference to
send@16'
C:\DOKUME1\Lippy\LOKALE1\Temp/ccyIbaaa.o(.text+0x1e7d):mail.cpp: more undefined references to `send@16' followAusführung beendet
Ich bin echt am verzweifeln!
Lippy
-
Beim g++ kann man IIRC auf der Kommandozeile -lws2_32 angeben. Aber ich nehme stark an, dass deine IDE dafür eine Einstellung anbietet.
-> Andere Compiler.
-
Dieser Thread wurde von Moderator/in cd9000 aus dem Forum WinAPI in das Forum Andere Compiler verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.