2013-06-27 47 views
0

是否有SMTP和時間的已知問題?我在下面列出了一些代碼,基本上向某人發送了生日問候,還有一個星座和其他分享他們生日的人(爲了好玩)。Html電子郵件沒有足夠快地更新爲smtp

我用正則表達式替換來獲得兩個元素,星座和其他人,其他方法並將其插入到一對「P」標籤之間的HTML文檔。我確信這些方法有效,並且我確信HTML文檔正在被正確地重新格式化(根據控制檯,在我的另一個測試中打印出我的新HTML文檔)。我在想,也許我的問題是在更換有機會發生之前發送電子郵件,但我可能很容易被拒之門外。如果任何人有過這個問題或知道它的原因,我會非常感激。 TIA。

public void formatHTMLTest()

{ using (StreamReader reader = File.OpenText("../../BirthdayMessage.htm")) 

     { 
      //Format the body 
      //Format the Famous People 
      string html = reader.ReadToEnd(); 

      string replacePattern1 = "<!--INJECT FAMOUS PEOPLE HERE-->"; 
      List<string> famousPeople = new List<string>(); 

      famousPeople.Add("test1"); 
      famousPeople.Add("test2"); 
      famousPeople.Add("test3"); 

      StringBuilder famousSB = new StringBuilder(); 
      foreach (string person in famousPeople) 
      { 
       famousSB.Append(person + ", "); 
      } 
      int length = famousSB.Length; 

      famousSB.Remove(length - 2, 2); 
      string famousString = famousSB.ToString(); 

      string html1 = Regex.Replace(html, replacePattern1, famousString); 
      //Format the Horoscope 
      string horoscope = "FOO."; 

      string replacePattern2 = "<!--INJECT HOROSCOPE HERE-->"; 
      string html2 = Regex.Replace(html1, replacePattern2, horoscope); 


      //Configuring the SMTP client 
      SmtpClient smtp = new SmtpClient(); 
      smtp.Port = 25; 
      smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
      smtp.UseDefaultCredentials = false; 
      smtp.Credentials = new NetworkCredential("b[email protected]", "senderPass"); 
      smtp.Host = "mysmtp"; 

      //Set up email that is sent to the client 
      MailMessage clientEmail = new MailMessage(); 
      clientEmail.From = new System.Net.Mail.MailAddress("[email protected]"); 
      clientEmail.To.Add(new MailAddress("[email protected]")); 
      clientEmail.Subject = "Happy Birthday!"; 
      clientEmail.IsBodyHtml = true; 
      clientEmail.Body = html; 

      //using (smtp as IDisposable) 
      { 
       smtp.Send(clientEmail); 
       clientEmail.Dispose(); 
      } 
     } 
    } 

我想這不用說,因爲我是能夠得到一個電子郵件,只是爲了清楚起見,SMTP沒有問題也。我完全能夠接收電子郵件。問題在於它們不包含出現在我的控制檯中用於其他測試的替換的HTML。

此外,任何其他的東西,你看到錯誤的代碼(優化等),不要猶豫發表評論。我總是樂於學習!謝謝

回答

0

您正在將字符串html注入體內。它應該是html2

+0

你明白了。其他人,無視這篇文章。我的不好,被我自己糟糕的變數所包圍。 –