2016-07-13 15 views
0

我有一個C#方法來發送電子郵件,我想獲得自動回覆辦公室電子郵件發件人或回覆用戶。這是我的代碼,它不起作用。如何允許來自C#的離開辦公室電子郵件自動答覆

我看到我離開辦公室的電子郵件答覆,如果從Outlook發送,但波紋管代碼有什麼問題?

public void SendEmail() 
    { 
     SmtpClient client = new SmtpClient("my host server", 25); 
     var sender = "sender"; 
     var to = "receiver"; 
     var replyTo = sender; 

     try 
     { 
      MailMessage msg = new MailMessage(); 

      msg.From = new MailAddress(sender); 
      msg.Subject = "Test auto reply from C#"; 
      msg.To.Add(new MailAddress(to)); 

      if (!string.IsNullOrWhiteSpace(replyTo)) 
      { 
       msg.ReplyToList.Add(replyTo); 
      } 

      msg.Body = "This is from C# email server to test auto reply."; 

      client.Send(msg); 

      msg.Dispose(); 
     } 
     catch (Exception ex) 
     { 
     } 
     finally 
     { 
      client.Dispose(); 
     } 
    } 
} 

在此先感謝。

+2

誰知道?你捕捉和壓制所有可能的例外。這沒有什麼好的理由。 *你是否得到例外?如果是這樣,它可能會告訴你什麼是錯的。 – hvd

+0

@hvd它沒有引發任何異常,成功發送電子郵件,但如果接收方有任何「離開辦公室」自動回覆,它不會收到發件人電子郵件中的框。 –

+0

@UtpalKumarDas你是說它的工作原理,但如果接收者有「不在辦公室」的回覆,它不起作用?不太明白這與你的代碼有什麼關係,或者發送電子郵件。也許檢查收件人的收件箱設置。嘗試使用相同的主機服務器從現有的界面(Outlook,Gmail等)發送電子郵件,並查看電子郵件發生了什麼。 – Tyress

回答

0

我們已經解決了由婁代碼的問題:

public void SendEmail() 
    { 
     SmtpClient client = new SmtpClient("my host server", 25); 
     var sender = "[email protected]"; 
     var from = "actual sender"; 
     var to = "receiver"; 
     var replyTo = sender; 

     try 
     { 
      MailMessage msg = new MailMessage(); 

      msg.From = new MailAddress(from); 
      msg.Sender = new MailAddress(sender); 

      msg.Subject = "Test auto reply from C#"; 
      msg.To.Add(new MailAddress(to)); 

      if (!string.IsNullOrWhiteSpace(replyTo)) 
      { 
       msg.ReplyToList.Add(replyTo); 
      } 

      msg.Body = "This is from C# email server to test auto reply."; 

      client.Send(msg); 

      msg.Dispose(); 
     } 
     catch (Exception ex) 
     { 
     } 
     finally 
     { 
      client.Dispose(); 
     } 
    } 

郵箱地址「[email protected]」已被使用,就像公司的地址,而不考慮任何回覆選項任何答覆。