Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp classic &引用+&引用;未打开包含电子邮件文件名的符号_Asp Classic - Fatal编程技术网

Asp classic &引用+&引用;未打开包含电子邮件文件名的符号

Asp classic &引用+&引用;未打开包含电子邮件文件名的符号,asp-classic,Asp Classic,我试图通过提供如下URL来打开电子邮件 mailUrl = "/Inbox/test%20mail%20%2B%20to%20verify%20%2B%20symbol.EML" oXMLHttp.open("PROPFIND", mailUrl, false, strUser, strPass); %20 - space %2B - + 它返回未找到文件错误,但文件在那里。我面临的问题是,每当在文件名中使用+符号时,获取文件未找到错误。因为命名约定是非法的。避免在文件名中使用非字母数字

我试图通过提供如下URL来打开电子邮件

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

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

%20 - space

%2B - +

它返回
未找到文件
错误,但文件在那里。我面临的问题是,每当在文件名中使用
+
符号时,获取文件未找到错误。

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

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

  • 在传递到
    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); 
    

    你好,RobbNesp,谢谢你的建议。实际上,每当用户发送邮件时,邮件都将以.EML格式存储在exchange服务器中。我们有两个功能,一个将列出页面中所有未读邮件,另一个在单击特定列表时,将打开该邮件的正文内容。对于显示列表,我们使用搜索和文件夹路径。因此,它将显示所有列表,包括“+”符号文件名。但是当打开那个特定的电子邮件时,我们遇到了这个错误。我建议您对它进行清理以删除非法字符。是的,我也尝试了这个URL,“/Inbox/test mail+to verify+symbol.EML”。找不到相同的文件状态。更新并合并我的答案。抱歉,mod,重复发布了答案。@E.Veerabhadran这不是sanitize,您所做的是解码URL编码。检查我的更新答案,其中“+”将替换为“\u1”。