Q&A

  • 아무도 답이 없구만요 ,,.난 죽겠는대.
혹시

그럼 indy로 메일을 보내는데

또 다시 문제가 발생했습니다.

뭐냐면

자꾸 문자가 html인데 먹지 않구 그냥 text로 곧바로 가져요...

부디 이걸 해결할 분에게 제가 저녁 쏘죠

contentType :='html/text'로 했거든요.

근데 안돼요....

1  COMMENTS
  • Profile
    토맛토 2001.06.20 09:33
    제발 wrote:

    > 혹시

    > 그럼 indy로 메일을 보내는데

    > 또 다시 문제가 발생했습니다.

    > 뭐냐면

    > 자꾸 문자가 html인데 먹지 않구 그냥 text로 곧바로 가져요...

    > 부디 이걸 해결할 분에게 제가 저녁 쏘죠

    > contentType :='html/text'로 했거든요.

    > 근데 안돼요....



    몇가지 사항을 신경쓰셔야 하는데요

    우선 컨텐트 타입은 html/text가 아니라 text/html입니다.



    그리고 플레인텍스트, 파일첨부등을 하기위해 멀티파트로 메일을 보낼경우에는

    TIdMessage의 contentType이 아니라 멀티파트의 각 메시지 파트(TIdText)의 contentType에 설정해야 합니다.



    이렇게 하면 TIdMessage의 ContentType은 text/html도 아니고 multipart/alternative 뭐 이런식이 되구요 (직접입력하지 않아도 되는 것 같아요)



    아래의 코드는 메시지의 타입과 문자셋을 설정하여 메일을 보내는 코드 입니다.





    var

    textMsg : TIdText;

    attachFile:TIdAttachment;

    begin

    // sendMessage는 폼위에 올려지거나 동적으로 생성된 TIdMessage



    sendMessage.CharSet := 'euc-kr'; // 메시지의 문자셋



    TIdText.Create(sendMessage.messageParts,nil); // 멀티파트의 첫번째 텍스트파트(html을 지원하지 않는 클라이언트를 위해 설정해야 한다.)



    textMsg := TIdText.Create(sendMessage.messageParts,nil); // html타입의 메시지가 붙는 두번째 파트

    textMsg.ContentType := 'text/html'; // 두번째 파트가 html타입임을 알림

    textMsg.Body.Text := 'Hello World'; // 메시지 내용



    TIdAttachment.Create(sendMessage.MessageParts,'c:file1.ext'); // 첨부파일 파트

    TIdAttachment.Create(sendMessage.MessageParts,'c:file2.ext'); // 첨부파일 파트





    smtpHost.connect; // 메일전송

    smtpHost.Send(sendMessage);

    smtpHost.disconnect;

    end;

    도움이 되시길 바랍니다.