2009-10-13 30 views
0

我已經在我的C#3.5窗體窗體應用程序中設置log4net。我正在尋找如何使用log4net從客戶端PC發送電子郵件。 SMTPAppender需要有關SMTPHost的知識,以及我見過的用於Web應用程序的示例。如何從窗體應用程序發送電子郵件與log4net

有沒有辦法在一個應用程序,將可能會或可能不會在域或網絡上的任何客戶端的計算機上運行發送電子郵件。我想我還需要能夠檢查是否有可用的連接。

我已經搜索了一個答案,但我沒有太多的經驗用電子郵件或網絡編程知道要尋找什麼。任何想法引導我走向正確的方向?

回答

1

c#SmtpClient非常適合您的需求。這裏的一些示例代碼(主機是一個IP地址或主機名,端口通常是25,但不一定):

public static void SendMail(
            string host, 
            int port, 
            SmtpAuthentication authentication, 
            string userName, 
            string password, 
            string from, 
            string to, 
            string cc, 
            string subject, 
            string body, 
            string[] attachments) 
     { 
      // Create and configure the smtp client 
      SmtpClient smtpClient = new SmtpClient(); 

      if (host != null && host.Length > 0) 
      { 
       smtpClient.Host = host; 
      } 

      smtpClient.Port = port; 
      smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 

      if (authentication == SmtpAuthentication.Basic) 
      { 
       // Perform basic authentication 
       smtpClient.Credentials = new System.Net.NetworkCredential(userName, password); 
      } 
      else if (authentication == SmtpAuthentication.Ntlm) 
      { 
       // Perform integrated authentication (NTLM) 
       smtpClient.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; 
      } 

      MailMessage mailMessage = new MailMessage(); 

      mailMessage.Body = body; 
      mailMessage.From = new MailAddress(from); 
      mailMessage.To.Add(to); 
      mailMessage.CC.Add(cc); 

      foreach (string attachement in attachments) 
      { 
       mailMessage.Attachments.Add(new Attachment(attachement)); 
      } 

      mailMessage.Subject = subject; 
      mailMessage.Priority = MailPriority.Normal; 

      smtpClient.Send(mailMessage); 
     } 
    } 
+0

謝謝,我不知道主機字符串使用什麼。它是PC的IP地址嗎? 因此,要在每臺機器上工作,我應該使用CredentialCache.DefaultNetworkCredentials進行身份驗證? – Maggie 2009-10-13 20:22:38

+0

嘗試詢問您的系統管理員的主機名。至於憑證,默認網絡憑證應該適用於所有機器。你應該只提供你的郵箱用戶名和密碼。 – geva30 2009-10-14 01:31:39

相關問題