|
서비스 업체마다 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="모두 완료";
}
//---------------------------------------------------------------------------
|