혹시 TSmtpRelayServer 를 아십니까.
대부분이 메일 발송 프로그램을 만들때 stmp 서버를 이용해서 만들더군요..
다른 호스트의 메일서버를 사용하는것도 왠지 미덥지 못해 여기저기 검색중
TSmtpRelayServer을 찾았는데요...
smtp 서버를 사용하지 않고 자신의 컴의 dns서버 주소를 가지고 보내더군요...
설명으로는 smtp서버 기능을 하므로 smtp 서버가 필요업다더군요...
메일 서버를 거치지 않고 만드는 방법이나 TSmtpRelayServer를 사용해보신분은
대답좀해주세요....TSmtpRelayServer <- 이눔이 쓸만한건지를요...
SMTP서버를 이용하여 메일을 보낼 때는 SMTP컴포넌트를 이용하여 SMTP서버에 접속한 후 메일을 보내죠. 메일을 받은 SMTP서버가 주소를 확인하여 해당 메일 서버로 재전송하는 것도 같은 방법입니다.
즉, 해당메일서버(메일받을 사람의 메일서버)의 IP만 알아내면 그 IP를 SMTP컴포넌트의 SMTP서버주소로 지정하여 메일을 보내면 됩니다. 메일받을 사람이 여러사람이고 각각 메일서버가 다르다면 보낼 때 마다 SMTP컴포넌트의 메일서버 주소가 달라지게 되겠죠?
SMTP서버는 항상 같은 방법으로 메일을 전송 받되 받은 메일이 SMTP서버에 있는 계정이면 받은메일로 저장,처리등을 하고 그 서버의 메일이 아니라면 메일주소에 해당하는 메일 서버를 찾아 그곳으로 보내는 일을 합니다. 처음부터 메일주소에 해당하는 서버를 찾아 보내면 별도의 SMTP서버가 없어도 되죠
메일주소에 해당하는 서버IP를 찾으려면 nslookup같은 과정이 있어야 하는데 UDP프로토콜로 직접 구현할 것이 아니면 Indy컴포넌트중에 TIdDNSResolver라고 있습니다. DNS서버로부터 알고자 하는 URL의 IP를 룩업할 수 있죠 물론 MX타입으로 찾을 수도 있으니까 메일서버 주소도 알아낼 수 있습니다.
Indy컴포넌트와 함께 예제를 다운받아 설치하시면 DNSResolver샘플코드를 볼 수 있습니다. 여기에 메일서버주소를 알아내는 기능코드도 있으니까 그 부분만 분석하셔서 SMTP컴포넌트와 같이 응용해 보시면 도움이 되실 것입니다.
optech wrote:
> 혹시 TSmtpRelayServer 를 아십니까.
>
> 대부분이 메일 발송 프로그램을 만들때 stmp 서버를 이용해서 만들더군요..
>
> 다른 호스트의 메일서버를 사용하는것도 왠지 미덥지 못해 여기저기 검색중
>
> TSmtpRelayServer을 찾았는데요...
>
> smtp 서버를 사용하지 않고 자신의 컴의 dns서버 주소를 가지고 보내더군요...
>
> 설명으로는 smtp서버 기능을 하므로 smtp 서버가 필요업다더군요...
>
> 메일 서버를 거치지 않고 만드는 방법이나 TSmtpRelayServer를 사용해보신분은
>
> 대답좀해주세요....TSmtpRelayServer <- 이눔이 쓸만한건지를요...