2015-07-20 18 views
1

我正在實施一個應用程序,該應用程序向公司的員工發送電子郵件。該電子郵件包含一個指向共享服務器文件夾上的pdf文件的超鏈接。如何通過C#中的電子郵件發送本地鏈接(共享服務器鏈接)?

服務器文件夾的URL示例:

\\server_name\folder_parent\folder_child\file.pdf 

在我的C#代碼,我用一個字符串包含像下面

private static string getHTML(DataTable dt) { 
    string myBuilder = ""; 
    myBuilder += "<table id='customers' style='font-family: 'Trebuchet MS', Arial, Helvetica, sans-serif; width: 100%; border-collapse: collapse;'"; 
    myBuilder += "<tr>"; 
    foreach (DataColumn myColumn in dt.Columns) 
    { 
     myBuilder += "<th style='font-size: 1.1em; border: 1px solid #98bf21; padding: 5px 7px 4px 7px;background-color: #A7C942;'>"; 
     myBuilder += myColumn.ColumnName; 
     myBuilder += "</th>"; 
    }  
    myBuilder += "</tr>"; 
    int count = 0; 
    foreach (DataRow myRow in dt.Rows) 
    { 
     myBuilder += "<tr>"; 
     if (count % 2 == 0) 
     {      
      foreach (DataColumn myColumn in dt.Columns) 
      { 
       myBuilder += "<td style='font-size: 1em; border: 1px solid #98bf21; padding: 3px 7px 2px 7px;'>"; 
       if (myColumn.ColumnName == "Address") 
       { 
        myBuilder += "<a href='" + myRow[myColumn.ColumnName].ToString() + "' style='display:block;'>Link!</a>"; 
       } 
       else 
       {              
        myBuilder += myRow[myColumn.ColumnName].ToString(); 
       } 
       myBuilder += "</td>"; 
      } 
     } 
     else 
     { 
      foreach (DataColumn myColumn in dt.Columns) 
      { 
       myBuilder += "<td style='font-size: 1em; border: 1px solid #98bf21; padding: 3px 7px 2px 7px; color: #000000; background-color: #EAF2D3;'>"; 
       if (myColumn.ColumnName == "Address") 
       {       
        myBuilder += "<a href='" + myRow[myColumn.ColumnName].ToString() + "' style='display:block;'>Link!</a>"; 
       } 
       else 
       { 
         myBuilder += myRow[myColumn.ColumnName].ToString(); 
       } 
       myBuilder += "</td>"; 
      } 
     }   
     count++; 
     myBuilder += "</tr>"; 
    } 
    myBuilder += "</table>"; 
    return myBuilder; 
} 

此代碼從數據表,並顯示獲取數據的代碼的html代碼它就像一個HTML代碼表。

這是DataTable的

dt.Rows.Add("bala", "24", "http://www.google.com", "999444444"); 
dt.Rows.Add("chendur", "23", "http://www.facebook.com", "9999999999"); 
dt.Rows.Add("chchandru", "22", @"file:///\\server_name\folderA\folderB\file.pdf", "888888888"); 

數據所以,當我打開鉻(mail.google.com)的電子郵件中,鏈接包含鏈路本地沒有工作,沒有在該文本超鏈接沒有。

我嘗試使用http鏈接,如谷歌或臉書和工作,但文件鏈接沒有從你可以從下面的圖片看到。

enter image description here

關於file:///,我試着寫一個HTML文件和工作。

<td><a href="file:///\\server_name\folderA\folderB\file.pdf">LINK</a></td> 

我讀過很多關於這方面的文章,他們說「安全問題」。

事情是這個應用程序只在同一家公司的員工之間發送電子郵件,他們使用共享服務器使用互聯網和發送電子郵件。 (公司內的所有電腦連接到同一臺服務器)。

那麼是否有任何可能的方式發送本地鏈接像這種情況?如果沒有,我是否有任何可能的解決方案來解決這種情況?要求只是「你點擊了你的電子郵件中的一個鏈接,它會自動在本地鏈接上打開一個文件。」

P/S:當然,我得到這個

MailMessage completeMessage = new MailMessage(From, To, Subject, mailBody); 
completeMessage.IsBodyHtml = true; 
+0

爲該文件夾創建網絡共享而不是使用服務器路徑 – Gregg

+0

@Gregg:您能否給我更多詳細信息? –

+0

[Windows共享文件夾的URL]的可能重複(http://stackoverflow.com/questions/5796215/an-url-to-a-windows-shared-folder) –

回答

0

我知道這是一個古老的胎面,但我有同樣的問題..

而不是發送地址爲紐帶,我送的網絡位置在開啓和關閉V形圖內,這種方式展望整個鏈接。 details

因此,我們有Intranet應用程序,它向員工發送網絡文件位置,並且所有員工都使用Outlook。我送文件的位置像你

\\服務器\ folder_parent \ folder_child \ file.pdf

與下面的代碼:

myBuilder += @"&lt;\\server_name\folder_parent\folder_child\file.pdf&gt;"; 

PS:我的實例MAILMESSAGE有utf8編碼。

mail.BodyEncoding = Encoding.UTF8; 
相關問題