안녕하세요
delphi를 사용한지 얼마 되지않은 초보입니다.
delphi7에서 메일 전송 프로그램을 만들고 있습니다.
구글링하여 소스를 찾아서 진행하였습니다.
메일 전송버튼을 누르면
auth not available(#5.3.3)
오류가 발생하는데 이 부분을 어떻게 해결해야 할 지 답을 찾지 못하여 글을 남깁니다.
소스는 아래와 같습니다.
function TForm1.IdSMTP_Mail(const Server: String; const Port: Integer; const UserField, PasswordField: String;
FromField, ToField, SubjectField, CompanyField, TextField: WideString; FileNames: TStringList): String;
var
IdSMTP : TIdSMTP;
IdMessage : TIdMessage;
aFileList : TStringList;
atc : TIdAttachment;
txtpart : TIdText;
htmpart : TIdText;
UTFString : UTF8string;
i : Integer;
begin
Result := '';
IdSMTP := TIdSMTP.Create(nil);
IdSMTP.AuthenticationType := atLogin; // 로그인 방식
IdSMTP.Host := Server;
IdSMTP.Port := Port;
// IdSMTP.UseEhlo := True;
IdSMTP.Username := UserField;
IdSMTP.Password := PasswordField;
IdMessage := TIdMessage.Create(nil);
IdMessage.CharSet := 'euc-kr';
IdMessage.Headers.Text := 'Content-type:text/html';
IdMessage.ContentType := 'Text/html';
IdMessage.From.Address := FromField; // 보내는 사람
IdMessage.Recipients.EMailAddresses := ToField; // 받는 사람
IdMessage.Subject := SubjectField; // 제목
IdMessage.Body.Add(TextField);
if FileNames <> nil then begin
if FileNames.Count > 0 then begin
for i := 0 to FileNames.Count -1 do begin
TIdAttachment.Create(IdMessage.MessageParts, Trim(FileNames.Strings[i]));
end;
txtpart := TIdText.Create(IdMessage.MessageParts);
txtpart.ContentType := 'text/plain';
htmpart := TIdText.Create(IdMessage.MessageParts);
// Attachments Case By Mime Type -> chartset - UTF-8 인코딩해서 보낸다 (변환필수) 핵심
UTFString := UTF8Encode(WideString(TextField)); // delphi7 version 함수
htmpart.Body.Add(UTFString);
htmpart.ContentType := 'text/html';
end;
end;
// htmpart := TIdText.Create(IdMessage.MessageParts);
Try
IdSMTP.Connect;
IdSMTP.Send(IdMessage); <-- 이 부분에서 오류 발생
Except on E : Exception do begin
Result := '메일 전송 중 오류 발생' + #13 + E.Message;
ShowMessage(Result);
end; end;
{
if FileNames.Count > 0 then begin
txtpart.Free;
htmpart.Free;
end;
}
IdSMTP.Disconnect;
IdSMTP.Free;
IdMessage.Free;
IdSMTP := Nil;
IdMessage := Nil;
end;
|