LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【hmailserver】IMAP文件夹名称编码及解码

admin
2020年7月7日 17:15 本文热度 4554
using System;
using System.Text.RegularExpressions;

public partial class MIS_uploader_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("收件箱:" + IMAPEncode("收件箱") + "<br>");
Response.Write("发件箱:" + IMAPEncode("发件箱") + "<br>");
Response.Write("垃圾箱:" + IMAPEncode("垃圾箱") + "<br>");
Response.Write("草稿箱:" + IMAPEncode("草稿箱") + "<br>");
}

// 编码
private string IMAPEncode(string folder)
{
string rtn = "", base64;
int index = 0;
Regex regAsis = new Regex(@"\G(?:[\x20-\x25\x27-\x7e])+");
Regex reg26 = new Regex(@"\G&");
Regex regEncode = new Regex(@"\G(?:[^\x20-\x7e])+");
Regex regEq = new Regex(@"=+$");
Regex regSlash = new Regex(@"\/");
while (index < folder.Length)
{
Match m;
m = regAsis.Match(folder, index);
if (m.Success)
{
index = index + m.Length;
rtn = rtn + m.Value;
continue;
}
m = reg26.Match(folder, index);
if (m.Success)
{
index = index + m.Length;
rtn = rtn + "&-";
continue;
}
m = regEncode.Match(folder, index);
if (m.Success)
{
index = index + m.Length;
base64 = Convert.ToBase64String(System.Text.Encoding.GetEncoding("UTF-16BE").GetBytes(m.Value));
base64 = regEq.Replace(base64, "");
base64 = regSlash.Replace(base64, ",");
rtn = rtn + "&" + base64 + "-";
continue;
}
}
return rtn;
}

// 解码
private string IMAPDeconde(string folder)
{
string rtn = "", base64;
int index = 0;
Regex regAsis = new Regex(@"\G([^&]+)");
Regex reg26 = new Regex(@"\G\&-");
Regex regDecode = new Regex(@"\G\&([A-Za-z0-9+,]+)-?");
Regex regComma = new Regex(@",");
while (index < folder.Length)
{
Match m;
m = regAsis.Match(folder, index);
if (m.Success)
{
index = index + m.Length;
rtn = rtn + m.Value;
continue;
}
m = reg26.Match(folder, index);
if (m.Success)
{
index = index + m.Length;
rtn = rtn + "&";
continue;
}
m = regDecode.Match(folder, index);
if (m.Success)
{
index = index + m.Length;
base64 = m.Value.Substring(1, m.Value.Length - 2);
base64 = regComma.Replace(base64, "/");
int mod = base64.Length % 4;
if (mod > 0) base64 = base64.PadRight(base64.Length + (4 - mod), '=');
base64 = System.Text.Encoding.GetEncoding("UTF-16BE").GetString(Convert.FromBase64String(base64));
rtn = rtn + base64;
continue;
}
}
return rtn;
}
}

执行结果:
收件箱:&ZTZO9nux-
发件箱:&U9FO9nux-
垃圾箱:&V4NXPnux-
草稿箱:&g0l6P3ux-

下载代码:

相关教程:
开源邮件服务器hMailServer用户密码加密算法[4]
  http://15596.oa22.cn

该文章在 2020/7/7 17:28:11 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved