2017-01-04 3 views
1

POP3 사서함에서 전자 메일을 다운로드하고 SMTP를 통해 내부 교환 서버로 전달하기 위해 C# 클라이언트를 작성했습니다.C# SMTP 클라이언트를 통해 전자 메일을 전달하고 시간 소인과 배달 시간을 유지하십시오.

아래 코드가 작동합니다. 그러나 원본 전자 메일의 타임 스탬프 및 배달 시간 정보는이 코드가 완전히 새로운 전자 메일을 생성하므로 손실되므로 덮어 씁니다.

원본 이메일의 타임 스탬프 정보를 잃어 버리지 않고 이메일을 전달할 수 있습니까?

using (SmtpClient smtp = new SmtpClient()) 
{ 
    smtp.Connect(connectionServer["ExchangeServer"], 25); 
    try 
    { 
     smtp.Ehlo(connectionServer["ExchangeServer"] + "." + 
      connectionServer["ExchangeServerDomain"] + ".local"); 
    } 
    catch 
    { 
     success = false; 
     smtp.Helo(connectionServer["ExchangeServer"] + "." + 
      connectionServer["ExchangeServerDomain"] + ".local"); 
    } 
    smtp.MailFrom(""); 
    smtp.RcptTo(popReceipient); 
    smtp.DataFromFile(path); 
    smtp.Disconnect(); 
} 
+0

불행히도 해당 없음 – Steve

+0

답장을 보내 주셔서 감사합니다. 나는 거의 이것이 아마도 어쩌면 답이라고 생각했다. 그러나 트릭이 있다는 약간의 희망이 있었다. 보안상의 이유로 생각할 수 있습니다. – Simon

답변

0

불가능합니다. 또 다른 옵션은 OpenPop.Net을 사용하여 대부분의 전자 메일 클라이언트에서 열 수있는 "* .eml"파일로 첨부 된 원본 전자 메일과 별도의 전자 메일을 보내는 것입니다. 이 접근 방식이 유용 할 경우 몇 가지 코드를 게시 할 수 있습니다.

+0

해결 방법이있을 수 있지만 최종 사용자를위한 처리는 약간 까다 롭습니다. 내 경우에는 이것이 불가능하며 아마도 pop3 이메일을 다운로드하고 전달하는 것과 약간의 시간차를 인정해야 할 것입니다. – Simon

0

IMAP을 통해 대상 서버에 액세스 할 수 있습니까?

그렇다면 메일을 임의의 시간 스탬프로 INBOX 폴더에 추가 할 수 있습니다. IMAP을 통해 원본 서버에 액세스 할 수 있다면 실제로 INTERNALDATE를 가져 와서 타임 스탬프로 사용할 수 있습니다.