zoukankan      html  css  js  c++  java
  • 邮件操作:POP3协议<2>

    获取邮件主题
    邮件的主题一般采用Base64编码,例如:Subject: =?gb2312?B?0MLUsbmktb242s2o1qo=?=
    其中=?和?=之间的就是邮件主题,前半部分标示了邮件内容原始编码(gb2312),后面的B表示了邮件主题现在的编码
     1//获取邮件主题
     2//正则表达式实现
     3string MailTitle="";
     4//Src仅仅表示邮件的一个部分,其中Subject表示主题部分
     5string Src=
     6"Subject:=?gb2312?B?o6jW2NKqo6nNqNaqo7q52NPasOy5q8f4teex7bjE1Oy2z7XnzajWqg==?=\r\n=?gb2312?B?o6i69L3Q1tDQxLP9zeKjqQ==?=\r\n";
     7string c = @"=\?gb2312\?B\?(.*?)\?=";
     8Regex myReg = new Regex(c, RegexOptions.IgnoreCase);
     9MatchCollection Mt = myReg.Matches(Src);
    10if (Mt != null)
    11{
    12for(int i=0;i<Mt.Count;i++)
    13{
    14MailTitle+=Mt[i].Groups[1].Value;
    15}

    16}
    上面这段主题的内容经过下面的解码后是:
    (重要)通知:关于办公区电表改造断电通知(呼叫中心除外)

    所以获取正确的邮件主题需要先将主题部分字符串转换成字节码,然后用GB2312编码获取字符串
    1//获取主题中内容字符串方式很多,在此只写一个用正则表达式的简单例子
    2string C="0MLUsbmktb242s2o1qo=";
    3//将主题部分转换成字节数组
    4byte[] B=Convert.FromBase64String(C);
    5//用GB2312格式编码得到原始的主题
    6string SrcString=Encoding.GetEncoding("GB2312").GetString(B));
    比如这段主题就是:
    新员工到岗通知

  • 相关阅读:
    html5手机摇一摇
    js全屏滚动效果
    js的 && 和 || 的应用
    VOLTDB基础知识
    WildFly 报错 java.lang.NoClassDefFoundError
    -Linux基础知识2 -文件系统的操作 压缩,解压缩
    Linux基础知识1
    Linux chgrp chown chmod 基础知识
    实例化list
    判断条件为空时需要注意
  • 原文地址:https://www.cnblogs.com/lixx/p/1202737.html
Copyright © 2011-2022 走看看