2012-06-23 35 views
0

正如標題所說,我從我的ASP.net Web應用程序發送電子郵件時沒有任何附件(現在),但奇怪的是電子郵件正文是作爲單獨的HTML文件附件當我單擊HTML文件時將空白電子郵件以單獨窗口的形式打開主體,並將其作爲獨立HTML文件寫入主體,但這只是在我將電子郵件發送到某些門戶網站(例如電子槍)時才發生,但是當我發送它時到Gmail或Hotmail地址,那麼電子郵件將會完美無缺地出現在應該出現的附件和正文中。來自ASP.net的電子郵件將作爲HTML附件

我的電子郵件地址碼是

public bool sendMail(string messageSubject, System.Net.Mail.MailAddress fromEmailAddress, System.Net.Mail.MailAddress toEmailAddress, string source_id, string messageText) 
    { 
     System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage(); 
     mail.IsBodyHtml = true; 
     mail.Subject = messageSubject; 
     mail.From = fromEmailAddress; 
     mail.To.Add(toEmailAddress); 
     mail.Body = messageText; 

     SmtpClient relayServer = new SmtpClient(); 

     List<KeyValuePair<string, string>> commandParameters = new List<KeyValuePair<string,string>>(); 
     commandParameters.Add(new KeyValuePair<string,string>("@source_id", source_id)); 
     DataTable sourcesTable = SQLSelect("SELECT * FROM LogiCrmSources WHERE source_id = @source_id", commandParameters); 

     relayServer.Host = sourcesTable.Rows[0]["source_smtp"].ToString(); 
     relayServer.Port = Convert.ToInt16(sourcesTable.Rows[0]["source_smtp_port"].ToString()); 
     if (relayServer.Port == 25) 
     { 
      relayServer.EnableSsl = false; 
     } 
     else 
     { 
      relayServer.EnableSsl = true; 
     } 
     relayServer.Credentials = new System.Net.NetworkCredential(sourcesTable.Rows[0]["source_email"].ToString(), sourcesTable.Rows[0]["source_password"].ToString()); 
     try 
     { 
      relayServer.Send(mail);     
      return true; 
     } 
     catch(SmtpFailedRecipientException exp) 
     { 
      return false; 
     } 
    } 

回答

1

不是所有客戶端可以處理HTML格式的電子郵件正確。例如,Gmail可以在你提到的門戶網站上無法使用。在這些情況下,電子郵件正文以附件形式發送。

+0

好的......我應該使用mail.AlternateViews添加某種兼容性,以避免發送單獨的HTML文件?就像門戶網站一樣,它只會顯示純文本視圖,而對於gmail/hotmail它將顯示HTML,它可以實現嗎?謝謝。 – Ahmed

相關問題