컴퍼넌트 사용
1. isSMTP: TIdSMTP;
2. imMSG: TIdMessage;
procedure TfmMailSend.Button1Click(Sender: TObject);
var
vFile, vSubject: String;
begin
try
Application.ProcessMessages;
aFileList := TStringList.Create;
isSMTP.Host := '회사 모메인';
isSMTP.Port := 25;
with imMSG do begin
From.Address := 'abc@naver.com';
Recipients.EMailAddresses := 'abc123@naver.com';
Subject := '테스트 메일발송!';
Body.Text := Subject +#13+#10+'첨부 파일 참조!'+#13+#10+'Sending Desktop IP : '+ aLocalIP;
Priority := mpHigh;
CharSet := 'KS_C_5601-1987';
Headers.Text := 'Content-type: text/html';
ContentType := 'text/html';
aFileList.Add('D:\20091117.log');
TIdAttachment.Create(MessageParts, Trim(aFileList.Strings[0]));
try
isSMTP.Connect(1000);
isSMTP.Send(imMSG); // 여기서 오류 가 발생합니다.
//sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
// 오류 메시지 전체는 첨부파일에 있습니다.
except
on E: Exception do SetProcessLog('MAIL SEND ERROR', pnSend.Hint);
end;
end;
finally
aFileList.Free;
dbCon.Connected := FALSE;
imMSG.MessageParts.Clear;
isSMTP.InputBuffer.Clear;
if isSMTP.Connected then isSMTP.Disconnect;
end;
end;
위와 같이 했을 경우 첨부된 것처럼 오류가 발생합니다.
참고
1. 회사 메일 주소로 보낼경우 오류없이 정상 발송됩니다.
2. Outlook에서 메뉴/도구/전자메일계정/변경/기타설정/보내는메일서버/
- 보내는 메일 서버(SMTP)인증필요 체크하였습니다.
- 받는 메일 서버와 동일한 설정사용 설정되었구여!