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。
此外,任何其他的東西,你看到錯誤的代碼(優化等),不要猶豫發表評論。我總是樂於學習!謝謝
你明白了。其他人,無視這篇文章。我的不好,被我自己糟糕的變數所包圍。 –