C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[21661] Re:[질문]smtp서버IP 설정 (참고만..)
문정원 [] 1545 읽음    2002-09-25 14:30
참고만 하세요..

이메일은 아이디@도메인으로 구성되어있쟎아요
도메인을 가지고 mx 레코드를 참조하여 smtp 주소를 알아냅니다.
그후 그 smtp 주소의 25번 포트로 접속을 하여 메일을 보냅니다.

공개 SMTP 라는게 무슨뜻인지는 모르겠구요
모든 메일은 보내는 사람의 아이피가 해당 smtp 서버에 접근거부 되어있지않으면
정상적으로 전달됩니다.

윈 2000 환경을 쓰신다면 간단히 telnet 으로 메일을 보낼 수 있습니다.

명령프롬프트에서
nslookup 엔터
>set q=mx
>도메인

이렇게 치시면 mailserver 의 주소가 등록된게 보이실 겁니다.
그 주소의 25번 포트로 접속을 하여 직접 메일을 보낼 수 있습니다.

(참고로 메일을 보낼때 mailfrom: 옆에 보내는 사람 메일주소를 적을때 '<' 로 열고 닫히지 않았을경우 메일이 거부되는 smtp 도 있습니다.)



하안인 님이 쓰신 글 :
: 서비스 업체마다 smtp설정이

:
: 인터넷 접속업체별 smtp서버
:

:
: - 한국통신(KORNET) : mail.kornet.net(전용선 사용자)
:
:                             soback.kornet21.net(Shell+PPP 가입자)
:
:                             kornet.net(PPP 가입자)
:

:
: - 하나로통신 : mail.hananet.net
:

:
: - 두루넷 : smtp.korea.com
:
:                            
:
:
: - 경기넷 : mail.kg21.net
:
: - 나우누리(NOWNURI) : mail.nownuri.net
:
:
: - 넷츠고(NETSGO) : netsgo.com
:
: - 미래텔(MIRAETEL) : miraetel.kornet.nm.kr
:
: - 신비로(SHINBIRO) : mail.shinbiro.com
:
:
: - 아이넷(INET) : mail.nuri.net
:
:
: - 아이프리(IFREE) : mail.ifree.net
:
:
: - 에듀넷(EDUNET) : edunet.nmc.nm.kr
:
: - 엘림넷(ELIMNET) : elim.net
:
:
: - 유니텔(UNITEL) : 203.241.132.90
:
:
: - 인터피아 : pop3.interpia.net
:
: - 채널아이(CHANNELI) : mail.channeli.net
:
:
: - 천리안(CHOLLIAN) : mail.chollian.net
:
:
: - 키스코(KISCO) : 203.233.144.1
:
:
: - 하이텔(HITEL) : smtp.hitel.net
:
:

:
: 공개 SMTP 서비스 주소(LAN 환경 이용자)
:
: - 211.40.177.184
:
: - 203.252.32.3
:
: - 211.45.135.11

: 위와 같다고 하는데 저는 ADSL을 사용해서 smtp host를 ppp.kornet.net으로 설정하니깐
: korea.com으로는 메일이 가는데 hanmail.net와 empal.com으로는 메일이 가지 않습니다.
: 9월5일이전에는 메일이 정상적으로 같는데...
:
: 위의 공개 smtp서비스를 사용하여 연결은 되는데 메일을 보내려고하면
: 보내는 주소를 검색하는지 찾을수 없다는 메시지가 나옵니다.
:
: 설정시 변경해야 하는지요.
: 제 프로그램소스는 다음과 같습니다.
:
: //---------------------------------------------------------------------------
:
: #include <vcl.h>
: #pragma hdrstop
:
: #include <stdio.h>
:
: #include "main.h"
: //---------------------------------------------------------------------------
: #pragma package(smart_init)
: #pragma resource "*.dfm"
: TForm1 *Form1;
: //---------------------------------------------------------------------------
: __fastcall TForm1::TForm1(TComponent* Owner)
:   : TForm(Owner)
: {
:   conn = false;
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
:   NMSMTP1->Host = Edit1->Text;
:   NMSMTP1->Port = 25;
:   NMSMTP1->UserID = Edit2->Text;
:   NMSMTP1->Connect();
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button2Click(TObject *Sender)
: {
:   if (NMSMTP1->Connected)
:     NMSMTP1->Disconnect();
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button4Click(TObject *Sender)
: {
:   if (OpenDialog1->Execute())
:     ListBox1->Items->Add(OpenDialog1->FileName);
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button5Click(TObject *Sender)
: {
:   ListBox1->Items->Delete(ListBox1->ItemIndex);
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button6Click(TObject *Sender)
: {
:   NMSMTP1->PostMessage->FromAddress = Edit4->Text;
:   NMSMTP1->PostMessage->FromName = Edit5->Text;
:   NMSMTP1->PostMessage->Subject = Edit10->Text;
:   NMSMTP1->PostMessage->ToAddress->Add(Edit7->Text);
:   NMSMTP1->PostMessage->ToBlindCarbonCopy->Add(Edit9->Text);
:   NMSMTP1->PostMessage->ToCarbonCopy->Add(Edit8->Text);
:   NMSMTP1->PostMessage->Attachments->AddStrings(ListBox1->Items);
:   NMSMTP1->PostMessage->Body->Assign(Memo1->Lines);
:   NMSMTP1->SendMail();
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button3Click(TObject *Sender)
: {
:   if (NMSMTP1->Verify(Edit3->Text))
:     ShowMessage(Edit3->Text+" exists");
:   else
:     ShowMessage(Edit3->Text+" not verified");
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button7Click(TObject *Sender)
: {
:   NMSMTP1->ExpandList(Edit11->Text);   
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1Connect(TObject *Sender)
: {
:   StatusBar1->SimpleText = "Connected";
:   conn = true;
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1ConnectionFailed(TObject *Sender)
: {
:   ShowMessage("Connection Failed");   
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1ConnectionRequired(bool &Handled)
: {
:   AnsiString BoxCaption;
:   AnsiString BoxMsg;
:   BoxCaption = "Connection Required";
:   BoxMsg = "Connection Required. Connect?";
:   if (MessageBox(0, &BoxMsg[1], &BoxCaption[1], MB_YESNO + MB_ICONEXCLAMATION) == IDYES)
:   {
:     Handled = TRUE;
:     Button1Click(this);
:   }
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1Disconnect(TObject *Sender)
: {
:   if (StatusBar1 != 0)
:     StatusBar1->SimpleText = "Disconnected";   
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1EncodeEnd(AnsiString Filename)
: {
:   StatusBar1->SimpleText = "Encoding "+Filename;
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1EncodeStart(AnsiString Filename)
: {
:   StatusBar1->SimpleText = "Decoding "+Filename;
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1Failure(TObject *Sender)
: {
:   ShowMessage("Operation Failed");
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1HostResolved(TComponent *Sender)
: {
:   StatusBar1->SimpleText = "Host Resolved";   
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1InvalidHost(bool &Handled)
: {
:   AnsiString NewHost;
:   if (InputQuery("Invalid Host", "Please Choose another host", NewHost))
:   {
:     //ShowMessage(NewHost);
:     NMSMTP1->Host = NewHost;
:     Handled = true;
:   }
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1MailListReturn(AnsiString MailAddress)
: {
:   Memo2->Lines->Add(MailAddress);
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1PacketSent(TObject *Sender)
: {
:   StatusBar1->SimpleText = IntToStr(NMSMTP1->BytesSent)+" bytes of "+IntToStr(NMSMTP1->BytesTotal)+" sent";   
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1RecipientNotFound(AnsiString Recipient)
: {
:   ShowMessage(Recipient+" not found");
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1SendStart(TObject *Sender)
: {
:   StatusBar1->SimpleText = "Sending message";
:   sendok = true;
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1Status(TComponent *Sender,
:       AnsiString Status)
: {
:   if (StatusBar1 != 0)
:     StatusBar1->SimpleText = Status;
:  
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::NMSMTP1Success(TObject *Sender)
: {
:   StatusBar1->SimpleText = "Message Sent";
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button8Click(TObject *Sender)
: {
:   TDateTime dt1,dt2;
:   dt2 = Now();
:   Word Year,Month,Day;
:   int k,i;
:   FILE *fp;
:   String Fname,str;
:   char ek[3],td[9],yd[9],*ptr,buf[512],mm[51];
:   bool sok;
:
:   DecodeDate(dt2, Year,Month, Day);
:   wsprintf(td,"%04d%02d%02d",Year,Month,Day);
:
:   if(dt2.DayOfWeek() == 2)
:      dt1 = dt2-3;
:   else
:      dt1 = dt2-1;
:   DecodeDate(dt1, Year,Month, Day);
:   wsprintf(yd,"%04d%02d%02d",Year,Month,Day);
:
:
:   StatusBar1->SimpleText = "변환중. 잠시만";
:   for (k = 0; k < ListBox2->Items->Count; k++)
:   {
:         strcpy(buf,ListBox2->Items->Strings[k].c_str());
:         ptr = strchr(buf,';');
:         if(!ptr)
:            continue;
:         i = ptr - buf;
:         strncpy(mm,buf,i); mm[i] = '\0';
:
:         Fname = String("MTxt\\")+String(mm)+String(td)+String(".txt");
:         fp = fopen(Fname.c_str(),"wt");
:         Gnb->Close();
:         Gnb->SQL->Clear();
:         str = String("select * from mstat where filename = '")+String(mm)+\
:           String("' and ( (today='")+String(yd)+String("' and mtime >'0900') or today='")+\
:           String(td)+String("') order by wonname,today,mtime");
:
:         Gnb->SQL->Add(str.c_str());
:         Gnb->Open();
:         fprintf(fp,"  날자           원명     ,        이름,     전화번호,    시간,    결과, 전화건시간,  받은시간,  종료시간,SE,S\n");
:         while(!Gnb->Eof)
:         {
:            sok = Gnb->FieldByName("studyok")->AsBoolean;
:            strcpy(ek,Gnb->FieldByName("exitkey")->AsString.c_str());
:            if(sok)
:               fprintf(fp,"%10s%20s,%10s,%14s,%6s,%8s,%10s,%10s,%10s,%2s,1\n",\
:               Gnb->FieldByName("today")->AsString.c_str(),\
:               Gnb->FieldByName("wonname")->AsString.c_str(),Gnb->FieldByName("name")->AsString.c_str(),\
:               Gnb->FieldByName("tel")->AsString.c_str(),Gnb->FieldByName("mtime")->AsString.c_str(),\
:               Gnb->FieldByName("log")->AsString.c_str(),Gnb->FieldByName("dial_time")->AsString.c_str(),\
:               Gnb->FieldByName("con_time")->AsString.c_str(),Gnb->FieldByName("dis_time")->AsString.c_str(),\
:               Gnb->FieldByName("exitkey")->AsString.c_str());
:            else
:               fprintf(fp,"%10s%20s,%10s,%14s,%6s,%8s,%10s,%10s,%10s,%2s,0\n",\
:               Gnb->FieldByName("today")->AsString.c_str(),\
:               Gnb->FieldByName("wonname")->AsString.c_str(),Gnb->FieldByName("name")->AsString.c_str(),\
:               Gnb->FieldByName("tel")->AsString.c_str(),Gnb->FieldByName("mtime")->AsString.c_str(),\
:               Gnb->FieldByName("log")->AsString.c_str(),Gnb->FieldByName("dial_time")->AsString.c_str(),\
:               Gnb->FieldByName("con_time")->AsString.c_str(),Gnb->FieldByName("dis_time")->AsString.c_str(),\
:               Gnb->FieldByName("exitkey")->AsString.c_str());
:            Gnb->Next();
:         }
:         Gnb->Close();
:         fclose(fp);
:   }
:   StatusBar1->SimpleText="변환작업 종료";
:
: }
: //---------------------------------------------------------------------------
: void __fastcall TForm1::Button9Click(TObject *Sender)
: {
:   ListBox2->Items->SaveToFile("gnb전자우편.txt");
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::ListBox2Click(TObject *Sender)
: {
:   int k;
:   String str;
:   TDateTime dt;
:   dt = Now();
:   Word Year,Month,Day;
:   char yd[9],*ptr,buf[512],mm[51],won[50];
:   int i;
:   bool sok;
:
:   DecodeDate(dt, Year,Month, Day);
:   wsprintf(yd,"%04d%02d%02d",Year,Month,Day);
:
:   sendok = false;
:
:   for (k = 0; k < ListBox2->Items->Count; k++)
:   {
:      if (ListBox2->Selected[k])
:      {
:         strcpy(buf,ListBox2->Items->Strings[k].c_str());
:
:         ptr = strchr(buf,';');
:         if(!ptr)
:            continue;
:
:         i = ptr - buf;
:         strncpy(won,buf,i); won[i] = '\0';
:         strcpy(buf,buf+i+1);
:
:         ptr = strchr(buf,';');
:         if(!ptr)
:            continue;
: RR:
:         i = ptr - buf;
:         strncpy(mm,buf,i); mm[i] = '\0';
:
:         strcpy(buf,buf+i+1);
:
:         Edit7->Text = String(mm);
:         Edit10->Text = String("결과자료입니다.");
:         str = String("c:\\프로그램\\메일\\mtxt\\")+String(won)+\
:            String(yd)+String(".txt");
:         ListBox1->Clear();
:         ListBox1->Items->Add(str);
:         Button6Click(this);
:
:         while(!sendok)
:            Sleep(1000);
:         sendok = false;
:
:         Sleep(3000);
:         ptr = strchr(buf,';');
:         if(ptr)
:            goto RR;
:
:      }
:   }
:   StatusBar1->SimpleText="보내기완료";
: }
: //---------------------------------------------------------------------------
:
:
:
:
: void __fastcall TForm1::FormActivate(TObject *Sender)
: {
:   ListBox2->Items->Clear();
:   ListBox2->Items->LoadFromFile("gnb전자우편.txt");
:
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TForm1::Button10Click(TObject *Sender)
: {
:   int k;
:   String str;
:   TDateTime dt;
:   dt = Now();
:   Word Year,Month,Day;
:   char yd[9],*ptr,buf[512],mm[51],won[50];
:   int i;
:   bool sok;
:
:   DecodeDate(dt, Year,Month, Day);
:   wsprintf(yd,"%04d%02d%02d",Year,Month,Day);
:
:   sendok = false;
:
:   for (k = 0; k < ListBox2->Items->Count; k++)
:   {
:         strcpy(buf,ListBox2->Items->Strings[k].c_str());
:
:         ptr = strchr(buf,';');
:         if(!ptr)
:            continue;
:
:         i = ptr - buf;
:         strncpy(won,buf,i); won[i] = '\0';
:         strcpy(buf,buf+i+1);
:
:         ptr = strchr(buf,';');
:         if(!ptr)
:            continue;
: RR:
:         i = ptr - buf;
:         strncpy(mm,buf,i); mm[i] = '\0';
:
:         strcpy(buf,buf+i+1);
:
:         Edit7->Text = String(mm);
:         Edit10->Text = String("결과자료입니다.");
:         str = String("c:\\프로그램\\메일\\mtxt\\")+String(won)+\
:            String(yd)+String(".txt");
:         ListBox1->Clear();
:         ListBox1->Items->Add(str);
:         Button6Click(this);
:
:         while(!sendok)
:            Sleep(1000);
:         sendok = false;
:
:         Sleep(3000);
:         ptr = strchr(buf,';');
:         if(ptr)
:            goto RR;
:
:      StatusBar1->SimpleText=String(mm)+ String(" 보내기완료");
:
:   }
:
:   StatusBar1->SimpleText="모두 완료";
:
: }
: //---------------------------------------------------------------------------
:

:

+ -

관련 글 리스트
21644 [질문]smtp서버IP 설정 하안인 1681 2002/09/24
21661     Re:[질문]smtp서버IP 설정 (참고만..) 문정원 1545 2002/09/25
21663         Re:Re:[질문]smtp서버IP 설정 (참고만..) 하안인 1369 2002/09/25
21664             Re:Re:Re:[질문]smtp서버IP 설정 (참고만..) 문정원 1314 2002/09/25
21665                 Re:Re:Re:Re:[질문]smtp서버IP 설정 (참고만..) 하안인 881 2002/09/25
21666                     Re:Re:Re:Re:Re:[질문]smtp서버IP 설정 (참고만..) 문정원 881 2002/09/25
21667                         Re:Re:Re:Re:Re:Re:[질문]smtp서버IP 설정 (참고만..) 하안인 912 2002/09/25
21670                             Re:Re:Re:Re:Re:Re:Re:[질문]smtp서버IP 설정 (참고만..) 문정원 870 2002/09/25
21671                                 Re:Re:Re:Re:Re:Re:Re:Re:[질문]smtp서버IP 설정 (참고만..) 하안인 756 2002/09/25
21672                                     Re:Re:Re:Re:Re:Re:Re:Re:Re:[질문]smtp서버IP 설정 (참고만..) 문정원 1001 2002/09/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.