原文連結:
http://www.cnblogs.com/jerrie/archive/2006/07/29/462798.html#commentform
今天終於把郵件的收發搞定,藉助於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