2017-08-15 55 views
0

我想發送格式化HTML內的字符串和參數的電子郵件。
我的代碼是這樣的:Html標籤不能在C#中格式化string.format

string title = "Big"; 
string text = "<p>email stuff with <b>important</b> {0} stuff</p>"; 
string.Format(text, title); 


MailMessage msz = new MailMessage(); 
var studentEmail = "[email protected]"; 


msz.To.Add(new MailAddress(studentEmail, "Someone")); 

msz.From = new MailAddress(from);          

msz.Subject = "Subject"; 
msz.Body = bodyText; 
SmtpClient smtp = new SmtpClient(); 
smtp.EnableSsl = true; 

smtp.Send(msz); 

我想在電子郵件中得到「電子郵件的東西與重要大的東西」,但我得到這個電子郵件中的:<p>email stuff with <b>important</b> {0} stuff</p>

+0

你是如何發送電子郵件? – SLaks

+0

你需要逃避你的文字。 – SLaks

+0

無法在示例控制檯應用程序上重現。它的格式爲'

電子郵件東西重要大東西

'。 –

回答

-1

其實它取決於你是如何發送電子郵件。

您應該將文本存儲到的MailMessage

string title = "Big"; 
string text = "<p>email stuff with <b>important</b> {0} stuff</p>"; 
string.Format(text, title); 


MailMessage message = new MailMessage(); 
message.From = "[email protected]"); 
message.To.Add("[email protected]"); 
message.Subject = title; 
message.IsBodyHtml = true; 
message.Body = text; 

Body部分有了IsBodyHtml = true,它會幫你格式化所有HTML標籤。

對於發送:

SmtpClient smtpClient = new SmtpClient() 
... 
smtpClient.Send(message); 
+1

請添加downvote的原因 – Jacky

+1

既然您已經提醒您注意您的代碼,我也必須對其進行投票。 Post實際上並沒有解釋爲什麼OP會對'String.Format'產生影響,而且這篇文章中的代碼與原始代碼具有完全相同的問題 - 忽略了'String.Format'的結果。顯示如何實際發送HTML電子郵件是很好的,但這不是問什麼問題(忽略評論)。 –

0

您可以使用串插增加值(一個或多個)需要直接:

string title = "Big" 

// Now this value has your expected output. 
string text = $"<p>email stuff with <b>important</b> {title} stuff</p>"; 
+1

任何原因造成downvote? –