2014-04-03 27 views
1

我有一個c#程序,它通過郵件中的超鏈接發送郵件給客戶。郵件是從SQL Server存儲過程發送的。我的c#程序只是調用sp。 超鏈接在Outlook中正常工作,但在聯機gmail上它只顯示爲文本。它不可點擊。 我的郵件文本看起來像:郵件中的超鏈接沒有在Gmail中顯示,但它在Outlook中有。

Hi. 
This is the hyperlink:<br> 
<a href=\"serveraddress\Documents\\123_128635312685687531322.gif\"> 
Click Here</a><br><br> 

我應該怎麼做來解決它?

編輯: 我的代碼:

string email = "[email protected]; 
string password = "MyPassword"; 

var credentials = new NetworkCredential(email, password); 
var msg = new MailMessage(); 
var smtpClient = new SmtpClient("smtp.gmail.com", 587); 

msg.From = new MailAddress(email, senderName); 
msg.To.Add(new MailAddress(toAddress)); 
msg.Subject = subject; 
msg.Body = message; 
msg.IsBodyHtml = true; 

smtpClient.EnableSsl = true; 
smtpClient.UseDefaultCredentials = false; 
smtpClient.Credentials = credentials; 
smtpClient.Send(msg); 

編輯2: 編譯消息被髮送:

string message = @"Hi. <br> 
This is the intro line in the mail message.<br>"; 

using (DataTable dtLinks = data.ExecuteDataSet(@"SELECT * 
                FROM LessonFiles 
                WHERE Course = " + dr["Course"].ToString().DBValue() + @" AND 
                 Lesson = " + dr["NextLesson"].ToString().DBValue()).Tables[0]) 
{ 

int i = 0; 
foreach (DataRow drLink in dtLinks.Rows) 
{ 
    i += 1; 
    message += "<a href=\"" + drLink["Link"].ToString() + "\">" + drLink["Lesson"].ToString(); 
    message += i == 1 ? "" : " file " + i; 
    message += "</a>" + "<br>"; 
} 
} 
message += "<br>Regards<br><br>"; 
+1

設置屬性IsHtml = MailMessage對象中的true(默認爲false,這就是爲什麼gmail顯示文本消息的原因) – Uriil

+0

有一個屬性IsBodyHtml已經設置爲true。我看不到一個IsHTML是c#。 –

+0

問題推薦 –

回答

0

看起來像超鏈接本身有趣的東西。 使用http://serveraddress/Documents/logoColourBG635315550177822533.jpg似乎工作。
原始路徑中包含反斜槓。它展示了Outlook中的超鏈接,這讓我相信這個地址是正確的。 感謝您的幫助。

0

嘗試添加目標= 「_空白」,像這樣...

message += "<a href=\"" + drLink["Link"].ToString() + "\"target=\"_blank\">" + drLink["Lesson"].ToString(); 
+0

感謝您的建議。可悲的是不工作。在Outlook中仍然看起來很好,但在Gmail中查看時使用超鏈接(使用Chrome)。 –

0

創建郵件對象...

var smtp = new System.Net.Mail.SmtpClient(); 
        smtp.Host = "smtp.gmail.com"; 
        smtp.Port = 587; 
        smtp.EnableSsl = true; 
        smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 
        smtp.Credentials = new NetworkCredential(UserName, Password); 
        smtp.Timeout = 20000; 

        MailMessage Msg = new MailMessage(); 
        Msg.IsBodyHtml = true; 
        MailAddress fromMail = new MailAddress(SenderID); 
        Msg.From = fromMail; 
        Msg.To.Add(new MailAddress(TosendID)); 
        Msg.Subject = subject; 
        Msg.Body = body; 

在正文中添加我們的代碼.....

希望這有助於.........

相關問題