今天终于把邮件的收发搞定,借助于jmail。虽然不是很满意,但基本功能都能实现。过程中,也遇到过不少问题,如解码问题,收未读邮件问题等等。
邮件解码,一般分为base64和quoted-printable,在网上曾搜索过,但未找到C#版的(可能是未努力去找),只找到C++和C两个版本的。在这里,俺把C#版的quoted-printable解码发布出来,供大家分享:
1quoted-printable解码#region quoted-printable解码
2 private string QPUnEncryCode(string source)
3 {
4 source=source.Replace ("=\r\n","");
5 int len=source.Length ;
6 string dest=string.Empty ;
7 int i=0;
8 while(i<len)
9 {
10 string temp=source.Substring (i,1);
11 if(temp=="=")
12 {
13 int code=Convert.ToInt32 (source.Substring (i+1,2),16);
14 if(Convert.ToInt32 (code.ToString (),10)<127)
15 {
16 dest+=((char)code).ToString ();
17 i=i+3;
18 }
19 else
20 {
21 dest+=System.Text.Encoding.Default.GetString(new byte []{Convert.ToByte (source.Substring (i+1,2),16),Convert.ToByte (source.Substring (i+4,2),16)}) ;
22 i=i+6;
23 }
24 }
25 else
26 {
27 dest+=temp;
28 i++;
29 }
30 }
31 return dest;
32 }
33
34 #endregion