2013-04-09 96 views
1

我試圖用C#創建併發送一封電子郵件,其中包含一個html表單。 GMail似乎能夠接受它(儘管我還沒有測試發佈後的行動),但Outlook(2007和2010)無法正確顯示錶單。發送包含html格式的電子郵件

這是我寫的代碼示例:

using (MailMessage mailmessage = new MailMessage()) 
{ 
    mailmessage.From = new MailAddress("[email protected]"); 
    mailmessage.To.Add("[email protected]"); 
    mailmessage.Subject = "Some subject"; 
    string html = @" 
    <!DOCTYPE html> 
    <html> 
    <head> 
    <meta charset='utf-8' /> 
    </head> 
    <body> 
    <form id='surveyForm' method='post' action='http://www.someserver.comsomeurl'> 
    Survey<br /><br /> 
    Some question ?<br /> 
    <input type='radio' name='Q1' id='Q1_1' value='1' /><label for='Q1_1'>Yes</label><br /> 
    <input type='radio' name='Q1' id='Q1_2' value='2' /><label for='Q1_2'>No</label><br /> 
    Some other question ?<br /> 
    <input type='radio' name='Q2' id='Q2_1' value='1' /><label for='Q2_1'>Yes</label>  <br /> 
    <input type='radio' name='Q2' id='Q2_2' value='2' /><label for='Q2_2'>No</label><br /> 
    <input type='submit' value='Submit'> 
    </form> 
    </body> 
    </html>"; 
    mailmessage.Body = "Some alternate text"; 
    using (AlternateView alternate = AlternateView.CreateAlternateViewFromString(html, Encoding.UTF8, MediaTypeNames.Text.Html)) 
    { 
    mailmessage.AlternateViews.Add(alternate); 
    SmtpClient smtp = new SmtpClient(); 
    smtp.Host = MyHost; 
    smtp.Send(mailmessage) 
    } 
} 

Gmail中的郵件包含一個形式,但在Outlook中,我得到以下幾點:

Survey 

Some question ? 
()Yes 
()No 
Some other question ? 
()Yes 
()No 
[Submit] 

我嘗試了以下變化:

mailmessage.IsBodyHtml = true; 
mailmessage.BodyEncoding = Encoding.UTF8; 
mailmessage.Body = html; 

但結果是一樣的。

當我檢查郵件的來源時,它對應於我生成的html。

我試圖做什麼不可能,或者有沒有Outlook(和其他電子郵件閱讀器)支持的方式?

感謝, 馬克

+1

是的,那是不可能的。不同客戶不同的規則。 GMail不那麼嚴格。 – leppie 2013-04-09 18:32:19

+0

有些事情可能是不可能的,但也許嘗試刪除除了標籤裏面的內容? – Breland 2013-04-09 18:54:00

+0

@Breland:那也行不通。 – Marc 2013-04-09 19:06:45

回答

0

而不是編寫自己的代碼,也許嘗試使用已經做了。 看http://nuget.org/packages/MvcMailer/http://nuget.org/packages/RazorEmail/。這個軟件包應該爲你做這個工作。

+0

我檢查了這兩個模塊的來源,我沒有看到這些將如何幫助我。它們只是SmtpClient的包裝器。我沒有問題發送郵件,我沒有看到任何可以幫助我發送表單的代碼。 – Marc 2013-04-09 19:23:51

相關問題