如何通过C#中的电子邮件发送本地链接(共享服务器链接)?

问题描述:

我正在实施一个应用程序,该应用程序向公司的员工发送电子邮件。该电子邮件包含一个指向共享服务器文件夹上的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://*.com/questions/5796215/an-url-to-a-windows-shared-folder) –

我知道这是一个古老的胎面,但我有同样的问题..

而不是发送地址为纽带,我送的网络位置在开启和关闭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;