" +"符号包含电子邮件文件名未打开

时间:2015-06-10 12:21:59

标签: asp-classic

我正在尝试通过提供以下网址来打开电子邮件

mailUrl = "/Inbox/test%20mail%20%2B%20to%20verify%20%2B%20symbol.EML"

oXMLHttp.open("PROPFIND", mailUrl, false, strUser, strPass);

%20 - space

%2B - +

它返回file not found错误,但文件存在。我面临的问题是,只要在文件名中使用+符号,就会发现找不到文件错误。

1 个答案:

答案 0 :(得分:1)

因为该命名约定是非法的。避免在文件名中使用非字母数字字符。使用这些字符可能会导致问题和问题,而且文件名不能超过128个字符。

阅读以下链接,它们有助于理解并列出文件名中需要避免的符号:

  1. Standard naming conventions for electronic records, rule 13
  2. Characters to Avoid in Directories and Filenames
  3. Illegal characters to avoid in filenames
  4. 也许你可以尝试在传递给oXMLhttp.open()函数之前清理输入(文件名),如下所示:

    string mailUrl = "/Inbox/test%20mail%20%2B%20to%20verify%20%2B%20symbol.EML"
    
    private static string SanitizeFileName(string name)
    {
    string invalidChars = Regex.Escape( new string( Path.GetInvalidFileNameChars() ) );
    string invalidReStr = string.Format( @"[{0}]+", invalidChars );
    return Regex.Replace( name, invalidReStr, "_" );
    }
    
    validFileName = SanitizeFileName(mailUrl);
    
    oXMLHttp.open("PROPFIND", validFileName, false, strUser, strPass);