[.NET]解决使用JMail接收邮件时的标题乱码
2008-02-20 10:21
351 查看
原创声明:
本文章为原创,欢迎转载,但请给出本文链接,多谢合作。
本文链接:http://blog.csdn.net/epinszteinic/archive/2008/02/20/2108637.aspx
本人使用的版本:JMail44_pro
使用Msg.Headers.GetHeader("Subject")得到的内容是:
=?utf-8?B?5L2g5Lus5aW95ZWK77yM6IO95pi+56S65ZCX77yf?=
一共有4个“?”号,作为分隔符
第一段:utf-8
第二段:B
第三段:5L2g5Lus5aW95ZWK77yM6IO95pi+56S65ZCX77yf
第四段:=
其中第三段就是标题的内容,但是经过Base64编码了
第一段就是标题内容原来的编码
所以,要进行两步反编码:
Private Function DecodeStr()Function DecodeStr(ByVal str As String) As String '可以往这里添加更多的编码,比如GB2312等等 Dim encodingList As New ArrayList encodingList.Add("ISO-2022-JP") encodingList.Add("UTF-8") Dim encodingStr As String = "" Dim sArr() As String = Nothing Dim result As String = "" If str IsNot Nothing Then For i As Integer = 0 To encodingList.Count - 1 encodingStr = encodingList(i).ToString() '判断传入的Subject原文有没有包含前面添加的编码字符串 If str.ToUpper.Contains(encodingStr) Then '存在的话,进行字符串分割 sArr = str.Split("?") Exit For End If Next If sArr IsNot Nothing Then 'sArr(3)就是经过Base64编码的原Subject内容 Dim b As Byte() = Convert.FromBase64CharArray(sArr(3).ToCharArray(), 0, sArr(3).ToCharArray().Length) Dim en As Encoding = Encoding.GetEncoding(encodingStr) result = en.GetString(b) Else result = str End If End If Return result End Function
调用方法:DecodeStr(Msg.Headers.GetHeader("Subject"))
相关文章推荐
- 解决使用JMail接收邮件时的标题乱码
- 解决使用JMail接收邮件时的标题乱码
- NAGIOS 使用sendmail发送邮件关于标题乱码的解决方法
- JMAIL发邮件的时候,接收到的邮件标题全是乱码
- 解决Jmail发送邮件标题出现乱码
- LumiSoft.Net邮件接收乱码问题解决
- 使用mail函数发送邮件标题乱码问题
- CI框架下,上传中文文件和发送中文邮件的标题乱码问题解决
- Android socket 使用PrintWriter和BufferedReader发送和接收出现乱码问题解决
- C++编程笔记:使用WinHTTP实现HTTP访问(解决接收UTF8数据乱码问题)
- 使用UTF-8编码/JMail组件发送邮件乱码问题
- python 接收邮件(下载附件,解决中文乱码)自测OK
- 使用 Indy 的 TIdSMTP, TIdPOP3收发邮件在验证账户的时候出现错误乱码解决方法
- 解决问题:在使用springmvc的web.xml配置乱码拦截器之后接收的get或者post请求中文还是乱码
- openerp 7.0邮件接收中文附件乱码问题解决办法
- Java使用Velocity模板发送HTML格式邮件并解决中文乱码问题
- Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
- Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
- JQuery中Ajax的Post提交中文乱码、windows.location.href 中文汉字乱码和springmvc使用原生态HttpServletRequest接收参数中文乱码解决办法
- Indy10 接收邮件正文和标题 出现乱码