[완료]smtp서버와 접속하는 소켓입니다. 그런데 ...
글쓴이: rjaechang / 작성시간: 화, 2007/11/20 - 10:20오후
메일을 보내는 소켓 입니다. 그런데 컴파일까지는 잘 되는데 실행을 시키면 명령 프롬프트만 깜빡깜빡거리고 아무 일도 일어나지 않습니다.
어디까지 실행이 되는지 보려고 출력문을 넣어도 봤지만 함수 맨위의 int sock윗부분에 출력문을 집어 넣어도 출력이 되지 않습니다. 어찌된 일인지 궁금합니다..
#include < stdio.h > #include < sys/socket.h > #include < arpa/inet.h > #include < stdlib.h > #include < string.h > #include < unistd.h > int main() { int sock; int len = 0; char buffer[1000]; struct sockaddr_in kauServer; //char * servIP = "mail.kau.ac.kr"; char * servIP = "localhost"; char * hostMsg = "HELO rjaechang"; char * fromMsg = "MAIL FROM : <a href="mailto:rjaechang@gmail.com" rel="nofollow">rjaechang@gmail.com</a>"; char * rcptMsg = "RCPT TO <a href="mailto:rjaechang@kau.ac.kr" rel="nofollow">rjaechang@kau.ac.kr</a>"; char * dataMsg = "fighting"; char * endMsg = "."; char * quitMsg = "QUIT"; sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if(sock < 0){ printf("Error"); exit(1); } kauServer.sin_family = AF_INET; kauServer.sin_addr.s_addr = gethostbyname(servIP); kauServer.sin_port = 25; connect(sock, (struct sockaddr*) &kauServer, sizeof(kauServer)); send (sock, hostMsg, 14, 0); len = recv(sock, buffer, sizeof(buffer), 0); buffer[len] = 0; printf("%s", buffer); send (sock, fromMsg, 31, 0); len = recv(sock, buffer, sizeof(buffer), 0); buffer[len] = 0; printf("%s", buffer); send (sock, rcptMsg, 27, 0); len = recv(sock, buffer, sizeof(buffer), 0); buffer[len] = 0; printf("%s", buffer); send (sock, dataMsg, 8, 0); len = recv(sock, buffer, sizeof(buffer), 0); buffer[len] = 0; printf("%s", buffer); send (sock, endMsg, 1, 0); len = recv(sock, buffer, sizeof(buffer), 0); buffer[len] = 0; printf("%s", buffer); send (sock, quitMsg, 4, 0); len = recv(sock, buffer, sizeof(buffer), 0); buffer[len] = 0; printf("%s", buffer); close(sock); return 0; }
Forums:
CRLF 가 빠진 듯..?
http://www.ietf.org/rfc/rfc0821.txt
3. THE SMTP PROCEDURES
참조해보세요..
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
라인마다 [qoute] \r\n
라인마다
[qoute]
\r\n
[/qoute]
으로 끝내야 합니다.
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
---------
간디가 말한 우리를 파괴시키는 7가지 요소
첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스
이익추구를 위해서라면..
다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치
아..그렇군요..
아..그렇군요.. 감사합니다^^!!
CRLF추가하니까 됩니다. ㅋ
printf문이 출력 안된건 버퍼를 밀어내기 전에 connect에서 프로그램이 먹어버려서 그렇다는군요.
fflush(null)을 해주니 출력이 되네요.
(~`0`)~
댓글 달기