2017-01-04 20 views
1

Я написал клиент C# для загрузки писем из моего почтового ящика POP3 и пересылки их на свой внутренний сервер обмена через SMTP.Переслать электронную почту через 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, чтобы использовать его как метку времени.