Q&A

  • POP3 도와주세요
저도 프로그램을 테스트 해 보았는데 문제가 생겼어요.

body의 내용이 정상적으로 나타나지 않고

마치 암호처럼 보이는데 왜 그런지 잘 모르겠군요.

혹시 메일링시 Encode/decode와 관련있는 것인지요?

그렇다면 어떻게 decode해야 되는지요?

아니면 다른 것이 원인일 수 있는지요?

어제하고 오늘 하루종일 궁리해보았지만

어렵습니다. 도와주세요?



4  COMMENTS
  • Profile
    안치봉 1999.03.05 23:06
    기련이 wrote:

    > 저도 프로그램을 테스트 해 보았는데 문제가 생겼어요.

    > body의 내용이 정상적으로 나타나지 않고

    > 마치 암호처럼 보이는데 왜 그런지 잘 모르겠군요.

    > 혹시 메일링시 Encode/decode와 관련있는 것인지요?

    > 그렇다면 어떻게 decode해야 되는지요?

    > 아니면 다른 것이 원인일 수 있는지요?

    > 어제하고 오늘 하루종일 궁리해보았지만

    > 어렵습니다. 도와주세요?

    >



    물론 델4에 internetpop 에 포함된 예제를 말씀하시는거 겠죠?



    질문하신 내용에 대해 테스트를 해 보았습니다요~



    테스트를 해보면 아시겠지만 메일을 받으면 속성중에 AttachFilePath 라는 항목이 있고 설정되어 있지 않다면 프로그램이 있는 폴더에 몇가지 화일이 생깁니다(메일의 내용) 그 내용을 일반편집기로 보면 body 의 내용이 html 로 작성되어 있는것이 있습니다. nmpop3 의 경우 텍스트기반의 메일수신을 하기 때문에 메일의 내용이 html 이라면 당연히 맛(?)이 가죠.



    한번 텍스트기반으로 메일을 보낸뒤 다시한번 body 의 내용을 보세요. 제가 해본결과로는 잘 됩니다.



    아직 충분히 nmpop3 콤포넌트의 도움말을 보지 않으셨다면 꼭! 읽어 보시고 작업을 하시기 바랍니다.

  • Profile
    기련이 1999.03.06 02:33
    도와주셔서 정말 감사합니다.



    제가 메일을 보낸 것은 OUTLOOK EXPRESS이고,

    메일서버는 MS EXCHANGE서버 입니다.

    근데 이것이 메일을 MIME1.0으로 ENCODE하여

    메일을 송신하여



    1. 수신 메세지의 BODY부문을 MEMO에 ASSIGN하면 ENCODE된 내용이 뜹니다.

    2. ENCODE된 내용을 TNMUUprocessor로 DECODE하면

    정상적으로 BODY의 내용이 나타납니다.



    <죄송하지만 추가 질문드립니다>

    1. 메일수신메세지가 무엇으로 ENCODE되었는지는 어떻게 체크하나요?

    uuMiME인지 uuCODE인지 어떻게 체크하는지요? HEADER에 서술형으로

    나타나던데 그것으로 체크하기는 좀 뭣하고요

    2. 수신메세지를 ENCODE할때 NUUUE1.INPUTSTREAM:=TFILESTREAM으로 대입되던데

    BODY가 TStringList이므로 InputSteam을 대입하면 에러가 납니다.

    INPUTSTREAM에 직접 BODY의 내용을 대입할 수는 없습니까?



    가령

    VAR IN: TStringStream;

    IN:= TStringStream.Create;

    NMPOP31.MailMessage.body.SavetoStream(IN)

    NUUUE1.INPUTSTREAM:= IN;

    으로 하면 에러가 나던데요.

    꼭 수신메일의 BODY를 화일로 저장하고

    저장된 화일을 다시 DECODE하여 저장하고 하는일 없이

    InputStream이나 OutputStream(TStream)을 TFileStream나 TBlobStream이

    아닌 TStringStream으로 대입할 수 있는 방법 좀 알려주세요.



    PS. 죄송합니다. 질문만 해서요.

    저도 이 홈페이지에 자주 방문해서리 저와 같은 혼자 고민하는 친구들을

    위해 도움이 될까 합니다. 즐거운 하루되세요~.



  • Profile
    안치봉 1999.03.06 04:46
    기련이 wrote:

    > 도와주셔서 정말 감사합니다.

    >

    > 제가 메일을 보낸 것은 OUTLOOK EXPRESS이고,

    > 메일서버는 MS EXCHANGE서버 입니다.

    > 근데 이것이 메일을 MIME1.0으로 ENCODE하여

    > 메일을 송신하여

    >

    > 1. 수신 메세지의 BODY부문을 MEMO에 ASSIGN하면 ENCODE된 내용이 뜹니다.

    > 2. ENCODE된 내용을 TNMUUprocessor로 DECODE하면

    > 정상적으로 BODY의 내용이 나타납니다.

    >

    > <죄송하지만 추가 질문드립니다>

    > 1. 메일수신메세지가 무엇으로 ENCODE되었는지는 어떻게 체크하나요?

    > uuMiME인지 uuCODE인지 어떻게 체크하는지요? HEADER에 서술형으로

    > 나타나던데 그것으로 체크하기는 좀 뭣하고요

    > 2. 수신메세지를 ENCODE할때 NUUUE1.INPUTSTREAM:=TFILESTREAM으로 대입되던데

    > BODY가 TStringList이므로 InputSteam을 대입하면 에러가 납니다.

    > INPUTSTREAM에 직접 BODY의 내용을 대입할 수는 없습니까?

    >

    > 가령

    > VAR IN: TStringStream;

    > IN:= TStringStream.Create;

    > NMPOP31.MailMessage.body.SavetoStream(IN)

    > NUUUE1.INPUTSTREAM:= IN;

    > 으로 하면 에러가 나던데요.

    > 꼭 수신메일의 BODY를 화일로 저장하고

    > 저장된 화일을 다시 DECODE하여 저장하고 하는일 없이

    > InputStream이나 OutputStream(TStream)을 TFileStream나 TBlobStream이

    > 아닌 TStringStream으로 대입할 수 있는 방법 좀 알려주세요.

    >

    > PS. 죄송합니다. 질문만 해서요.

    > 저도 이 홈페이지에 자주 방문해서리 저와 같은 혼자 고민하는 친구들을

    > 위해 도움이 될까 합니다. 즐거운 하루되세요~.

    >



    답변드리옵죠.



    1 번질문



    쓰신그대로 헤더형에 나타난값을 가지고 하는게 가장 확실하고 또 좋은방법인것 같습니다. 아니면 스스로 더 낳은 방법을 연구해 보십시요.



    2 번질문



    VAR

    IN: TStringStream;

    begin

    IN:= TStringStream.Create;

    NMPOP31.MailMessage.body.SavetoStream(IN)

    NUUUE1.INPUTSTREAM:= IN;

    ...

    end



    위 소스를 정말 델파이에서 컴파일 시켜보시고 질문을 하시는지 묻고 싶습니다. 컴파일 시켜 보셨다면 왜 안되는지는 굳이 질문을 하지 않으셔도 잘 아실것 같습니다.



    IN: TStringStream; <= IN 은 예약어 입니다.



    IN:= TStringStream.Create; <= 델파이 도움말중 TStringStream.Create 에 대한 도움말을 읽어 보셨는지 의심스럽군요.



    현재 소스에 문법에러가 있기 때문에 답변을 드린다는것 자체가 잘못되는것 같아 이 정도로만 힌트를 드리겠습니다^^



    아울러 너무 답변이 불성실하다고 욕하시거나 하시지는 마시기 바랍니다. 저는 그렇게 생각합니다. 완전히 문제를 풀어주기 보다는 어려운 문제를 만났을때 문제를 푸는 방법을 가르쳐 드리는게 더욱 낳다고 생각합니다.



    이상입니다. 그리고 TStringStream 의 도움말을 충분히 읽으시고 문법에러를 수정하신뒤 다시 그 부분에 대한 소스를 올려 주시면 그때 또 해결하는 방법을 가르쳐 드리겠사옵니다요~



    열심히 하십시요!!!.



  • Profile
    기련이 1999.03.10 02:30
    덕분에 문제를 해결하였습니다.



    Var

    InStr, OutStr: TStringStream;

    Begin

    InStr := TStringStream.Create(NMPOP31.MailMessage.Body.Text);

    outStr := TStringStream.Create('');

    NMUUE1.InputStream := InStr;

    NMUUE1.OutputStream := OutStr;

    NMUUE1.Method := uuMIME;

    NMUUE1.Decode;

    End



    이렇게 하니까 TStream에 TStringStream이 대입되더군요.

    === 다시한번 감사드립니다. ===

    • 구민오
    • 1999.03.16 11:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.16 23:30
      구민오 wrote: > 아래와 같은 메세지가 뜨면서 저를 하루 종일 괴롭히고 또 괴롭혀서 > 지금 잠자지도 ...
    • 구민오
    • 1999.03.15 08:09
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.15 21:01
      구민오 wrote: > 안녕하세요.... > 오랜만에 질문을 올리는 군요... > 다름이 아니라 익스플로러를 강제...
    • 이장렬
    • 1999.03.14 05:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.03.15 20:43
      이장렬 wrote: > 신인재씨 여러가지로 가르쳐 주셔서 감사합니다. > 제가 여러번 소스를 검사해도 도저히...
    • 1999.03.13 21:59
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 발해를 꿈꾸며
      1999.03.13 02:54
      이무수 wrote: > 델파이로 디베이스와 파라독스를 연결하여 디비를 관리하고 > 있그니다. 약 2년정도 경...
    • 이장렬
    • 1999.03.12 21:24
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이장렬
      1999.03.12 21:25
      이장렬 wrote: > Table의 이벤트 afterpost에 DbiSaveChanges(table4.Handle);을 입력했는데 > iden...
    • 신인재
      1999.03.13 20:28
      이장렬 wrote: > 이장렬 wrote: > > Table의 이벤트 afterpost에 DbiSaveChanges(table4.Handle);을 입...
    • 이장렬
      1999.03.13 21:32
      신인재 wrote: > 이장렬 wrote: > > 이장렬 wrote: > > > Table의 이벤트 afterpost에 DbiSaveChanges(...
    • 신인재
      1999.03.13 22:45
      음....BDE와 Timer사이에는 전혀 관계가 없습니다. 앞뒤 프로그램 로직상의 문제 인거 같습니다. 에러...
    • 이장렬
    • 1999.03.12 17:49
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 신인재
      1999.03.12 20:09
      이장렬 wrote: > 안녕하세요? > 저는 이 홈페이지를 처음으로 들어왔습니다. > 프로그램을 짜다가 약간...
    • 이장렬
      1999.03.12 21:30
      신인재 wrote: > 이장렬 wrote: > > 안녕하세요? > > 저는 이 홈페이지를 처음으로 들어왔습니다. > > ...
    • 안치봉
      1999.03.12 19:13
      이장렬 wrote: > 안녕하세요? > 저는 이 홈페이지를 처음으로 들어왔습니다. > 프로그램을 짜다가 약간...
    • 1999.03.12 06:50
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.12 19:23
      한 wrote: > var H: HWND; > begin > H := FindWindow('Notepad', nil); > If H = 0 then > ...
    • 1999.03.12 20:08
      안치봉 wrote: > > 안녕하세요! 소스는 잘 보았습니다. > > 한가지 중요한 점이 있습니다. 무엇이냐 ...
    • 안치봉
      1999.03.12 21:33
      한 wrote: > 안치봉 wrote: > > > > 안녕하세요! 소스는 잘 보았습니다. > > > > 한가지 중요한 점...
    • 손창근
    • 1999.03.12 05:26
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.12 06:09
      손창근 wrote: > 안녕하세요... 오공이 입니다. > > 다름이 아니라 제가 요새 회사에서 뉴질랜드에서 ...
    • 손창근
      1999.03.12 07:11
      안치봉 wrote: 안녕하세요. 오공이 입니다... 저의
    • 1999.03.12 05:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.12 06:01
      한 wrote: > GetClassName함수를 사용하여서 클래스 명을 찾을 수 있었지만, > > SendMessage로 보내는...
    • LYON
    • 1999.03.12 04:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.12 06:36
      LYON wrote: > 안녕하세요? > 몇가지 질문이 있어서 이렇게 질문 올립니다. > > 먼저 저는 Access DB...
    • 1999.03.12 03:17
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.12 03:43
      한 wrote: > 제목 되로 아래한글과 MSWORD의 클래스 이름을 알아내는 방법을 알고 싶습니다. > > 감기 ...
    • 안치봉
      1999.03.12 03:47
      이대선 wrote: > 후킹 콤퍼넌트 진짜 잘 만드셨고 요긴하게 잘 쓰고 있습니다. > > 현재 ...
    • 안치봉
      1999.03.10 04:15
      소스는 잘~ 받았습니다. 소스를 보니 약간은 잘못(?)된 부분이 있습니다(아래는 제가 수정한 겁니다). ...
    • 신인재
      1999.03.10 04:08
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 안치봉
      1999.03.10 02:11
      원영준 wrote: > 안녕 하십니까 ! > 델파이 초보자로써 이런 곳을 보니 매우 기쁩니다. > 당분간은 ROM...
    • 안치봉
      1999.03.09 06:01
      박근영 wrote: > 안녕하세요.... > 얼마전 나이렉스 인터내셔날을 처음 알게 되었습니다.... > 사이트...
    • 박근영
      1999.03.09 17:39
      답변 감사합니다... 건강하세요.....
    • 이창석
    • 1999.03.08 00:11
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.10 03:12
      이창석 wrote: > 반갑습니다. > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. > 몇일째 풀리지 않는...
    • 이창석
      1999.03.12 00:33
      안치봉 wrote: > 이창석 wrote: > > 반갑습니다. > > 아침에 봄비가 조금 내리더니, 지금은 그쳤네요. ...
    • 신인재
      1999.03.12 04:33
      > procedure TForm1.Button1Click(Sender: TObject); > var > i,y:integer; > begin > if opendialo...
    • 김성률
    • 1999.03.06 05:11
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.08 00:34
      김성률 wrote: > 먼저 대단히 죄송합니다. 이해를 도우기 위한 측면만 생각하다 보니 제가 봐도 말도 않되...
    • 기련이
    • 1999.03.05 01:12
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.03.05 23:06
      기련이 wrote: > 저도 프로그램을 테스트 해 보았는데 문제가 생겼어요. > body의 내용이 정상적으로 나...
    • 기련이
      1999.03.06 02:33
      도와주셔서 정말 감사합니다. 제가 메일을 보낸 것은 OUTLOOK EXPRESS이고, 메일서버는 MS EXCHANGE서...
    • 안치봉
      1999.03.06 04:46
      기련이 wrote: > 도와주셔서 정말 감사합니다. > > 제가 메일을 보낸 것은 OUTLOOK EXPRESS이고, > ...
    • 기련이
      1999.03.10 02:30
      덕분에 문제를 해결하였습니다. Var InStr, OutStr: TStringStream; Begin InStr := TStringStr...