2013-04-05 79 views
0

嗨我需要在c#windows應用程序中使用模板發送電子郵件。我創建了一個模板,但我無法通過html模板傳遞參數。這是我正在使用的模板。如何將參數從C#Windows應用程序傳遞到HTML電子郵件模板發送電子郵件

對於這個HTML模板,我打電話給我的Windows應用程序,並通過Gmail郵件發送。我能夠發送郵件但無法將參數傳遞給它。請幫我out.Here就是我在我的Windows應用程序

try 
{ 
    using (StreamReader reader = File.OpenText("H:\\Visitor Management_Project\\Visitor Management_Project\\Visitor Management_Project\\EmailTemplate.htm")) 
    { 
    SmtpClient SmtpServer = new SmtpClient("173.194.67.108", 587); 
    SmtpServer.UseDefaultCredentials = false; 
    SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network; 
    SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "*******"); 
    //SmtpServer.Port = 587; 
    SmtpServer.Host = "smtp.gmail.com"; 
    SmtpServer.EnableSsl = true; 
    message = new MailMessage(); 
    message.Subject = "Visitor Arrived"; 
    //message.SubjectEncoding = System.Text.Encoding.UTF8; 
    message.IsBodyHtml = true; 
    message.Body = "EmailTemplate.htm"; 
    //message.BodyEncoding = System.Text.Encoding.UTF8; 
    message.From = new MailAddress("[email protected]"); 
    message.To.Add(lblCPEmail.Text); 
    message.Priority = MailPriority.High; 
    message.Body = reader.ReadToEnd(); 
    message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; 
    SmtpServer.Send(message); 
    } 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message); 
} 

如何將參數添加到HTML模板這裏我得到在文本框同一頁的所有參數調用的代碼。請幫我解決

+0

你的模板是什麼樣的?還是你問什麼模板的最佳格式? – 2013-04-05 12:39:24

+0

當你成功時,message.Body會被設置爲什麼?文本是根據文件讀出的嗎? – Penfold 2013-04-05 13:38:37

+0

在重新閱讀你的問題......它似乎你正在尋找最好的方式來將你的窗口中的控件(文本框等)的值注入到模板html body中的模板位置?我對麼?如果是這樣,你能提供模板文件嗎?通常我會用一些正則表達式來替代它,但這取決於你的模板的格式。 – Penfold 2013-04-05 13:41:33

回答

0

我想你已經自己發現了答案,但我會一直髮布答案。

如果您使用的是Windows窗體而不是Windows Presentation Forms(不同於Windows Forms上沒有的設計部分和許多新功能),我所做的就是這樣(發送電子郵件):

public void SendEmail(string _from, string _fromDisplayName, string _to, string _toDisplayName, string _subject, string _body, string _password) 
    { 
     try 
     { 
      SmtpClient _smtp = new SmtpClient(); 

      MailMessage _message = new MailMessage(); 

      _message.From = new MailAddress(_from, _fromDisplayName); // Your email address and your full name 

      _message.To.Add(new MailAddress(_to, _toDisplayName)); // The recipient email address and the recipient full name // Cannot be edited 

      _message.Subject = _subject; // The subject of the email 
      _message.Body = _body; // The body of the email 

      _smtp.Port = 587; // Google mail port 
      _smtp.Host = "smtp.gmail.com"; // Google mail address 
      _smtp.EnableSsl = true; 
      _smtp.UseDefaultCredentials = false; 
      _smtp.Credentials = new NetworkCredential(_from, _password); // Login the gmail using your email address and password 

      _smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
      _smtp.Send(_message); 

      ShowMessageBox("Your message has been successfully sent.", "Success", 2); 
     } 

     catch (Exception ex) 
     { 
      ShowMessageBox("Message : " + ex.Message + "\n\nEither your e-mail or password incorrect. (Are you using Gmail account?)", "Error", 1); 
     } 
    } 

,我使用它是這樣的:

SendEmail(textBox2.Text, textBox5.Text, textBox3.Text, "YOUR_FULL_NAME", textBox4.Text, textBox6.Text, "YOUR_EMAIL_PASSWORD"); 

以下是圖像:

enter image description here

願這個答案可以幫到你。

乾杯!

相關問題