lumisoft.net发邮件时附件中文乱码

flowfog 2015-05-11 08:40:41
lumisoft.net发邮件时附件中文乱码,这问题怎么解决?
...全文
417 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
这样子的话 2015-09-01
  • 打赏
  • 举报
回复
引用 9 楼 kiant 的回复:
[quote=引用 8 楼 lsh894609937 的回复:] 接收邮件的时候,你是怎么处理附件的
正常的获取,MIME_Entity.ContentDisposition.Param_FileName 中文名称么影响[/quote] 话说 我用hotmail发的带附件邮件,获取到的MIME_Entity.ContentDisposition.Param_FileName ==null 然后我就用_aName = entity.ContentDescription.ToString();作为附件名,一样的
kiant 2015-08-31
  • 打赏
  • 举报
回复
引用 8 楼 lsh894609937 的回复:
接收邮件的时候,你是怎么处理附件的
正常的获取,MIME_Entity.ContentDisposition.Param_FileName 中文名称么影响
这样子的话 2015-08-24
  • 打赏
  • 举报
回复
引用 6 楼 kiant 的回复:
困扰了二天,问题采用拼串方式解决,把代码附上,希望能给遇到同样问题的人一点启发 所用的 lumisoft.net 4.5.5654.19614,环境是Framework 4.5

string name = "这里是附件名称";
MIME_Entity entity = MIME_Entity.CreateEntity_Attachment(name, new MemoryStream("这里是附件数据"));

string encodingStr = "utf-8".ToUpper();
Encoding encoding = Encoding.GetEncoding(encodingStr);
if (encoding.GetByteCount(name) > name.Length) {
    byte[] barray = encoding.GetBytes(name);
    string newName = "=?" + encodingStr + "?B?" + Convert.ToBase64String(barray) + "?=";

    string format = "Content-Disposition: attachment;\r\n\tfilename=\"{0}\";\r\n\tsize=\"{1}\"\r\n";
    string formatValue = string.Format(format, newName, entity.ContentDisposition.Param_Size);
    entity.ContentDisposition = MIME_h_ContentDisposition.Parse(formatValue);
}                      

multipartMixed.BodyParts.Add(entity);  //MIME_b_MultipartMixed multipartMixed
下面是我用 smtp.sina.com 发向 qq邮箱的截图 感谢 @xuliyuan173 给我的帮助
接收邮件的时候,你是怎么处理附件的
kiant 2015-07-29
  • 打赏
  • 举报
回复
困扰了二天,问题采用拼串方式解决,把代码附上,希望能给遇到同样问题的人一点启发

所用的 lumisoft.net 4.5.5654.19614,环境是Framework 4.5

string name = "这里是附件名称";
MIME_Entity entity = MIME_Entity.CreateEntity_Attachment(name, new MemoryStream("这里是附件数据"));

string encodingStr = "utf-8".ToUpper();
Encoding encoding = Encoding.GetEncoding(encodingStr);
if (encoding.GetByteCount(name) > name.Length) {
byte[] barray = encoding.GetBytes(name);
string newName = "=?" + encodingStr + "?B?" + Convert.ToBase64String(barray) + "?=";

string format = "Content-Disposition: attachment;\r\n\tfilename=\"{0}\";\r\n\tsize=\"{1}\"\r\n";
string formatValue = string.Format(format, newName, entity.ContentDisposition.Param_Size);
entity.ContentDisposition = MIME_h_ContentDisposition.Parse(formatValue);
}

multipartMixed.BodyParts.Add(entity); //MIME_b_MultipartMixed multipartMixed


下面是我用 smtp.sina.com 发向 qq邮箱的截图



感谢 @xuliyuan173 给我的帮助
kiant 2015-07-29
  • 打赏
  • 举报
回复
引用 4 楼 leaderhsr 的回复:
楼主,我也碰到和你一样的问题,不是编码的问题,是dll组件本身的问题,我已经解决了,也是困扰了很久,网上各种搜说找不到答案,然后之后想到了可以修改一个dll文件,于是我就下载了lumisoft.net的源文件,找到相关的地方进行附件文件名处理更新,然后编译,生成dll就ok了,不过首先得选择好.net 的版本,要和你现在客户端的版本一致,我选择的都是.net 4.0版本,然后测试,ok~~,再也不用担心附件名乱码问题了,偶也! 楼主有需要我可以给你发这个重新编译过的dll,因为自己找了半天没找到答案,所以想帮帮和我一样被这个问题困惑的人
我近期也遇到了这种问题, http://ask.csdn.net/questions/179900 这篇文章能解决一些短文件名的情况, 楼上可以的话请把你思路介绍一下,谢谢!
rainwhorain 2015-05-15
  • 打赏
  • 举报
回复
楼主,我也碰到和你一样的问题,不是编码的问题,是dll组件本身的问题,我已经解决了,也是困扰了很久,网上各种搜说找不到答案,然后之后想到了可以修改一个dll文件,于是我就下载了lumisoft.net的源文件,找到相关的地方进行附件文件名处理更新,然后编译,生成dll就ok了,不过首先得选择好.net 的版本,要和你现在客户端的版本一致,我选择的都是.net 4.0版本,然后测试,ok~~,再也不用担心附件名乱码问题了,偶也! 楼主有需要我可以给你发这个重新编译过的dll,因为自己找了半天没找到答案,所以想帮帮和我一样被这个问题困惑的人
  • 打赏
  • 举报
回复
你应该问框架的作者或者技术服务人员。如果没有技术服务,也没有很好的社区,必要轻易乱用第三方组件。
flowfog 2015-05-11
  • 打赏
  • 举报
回复
使用了UTF-8 还是一样的?
Justin-Liu 2015-05-11
  • 打赏
  • 举报
回复
编码格式

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧