MailMessage 邮件标题长度超过124则标题乱码 有谁遇到过这种问题没有?有解决过的请帮帮我吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如何给主题编码?MailMessage只提供了SubjectEncoding属性来设置主题的编码 刚试了一下,简单的没什么问题啊SmtpClient client = new SmtpClient(); MailMessage message = new MailMessage(); message.To.Add("****@***.**.**"); message.Subject = "test01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"; client.Send(message);你需要给出更多信息。你的主题是否编码?是否是你使用的smtp server有些限制? 你加点中文再试试比方说下面这段就不行ccccccccccccccccc监控系统查询名称为:\"001005 新股提示 001006 配股提示001027 基金发行提示001032 操盘必读, 每个交易日天早上8:20应该更新完毕,什么原因我搞不懂\"编号为:的监控规则发生异常 我是有设置SubjectEncoding的 所以不是中文的问题 上面那段只要长度再减几个字就可以发了 给你的链接中有例子:public static string ConvertHeaderToBase64(string s, string charset) 再试了下中文的也是可以的。对了,我用的vs2005 .net 2.0SmtpClient client = new SmtpClient(); MailMessage message = new MailMessage(); message.SubjectEncoding = UTF8Encoding.UTF8; message.To.Add("****@****.**.**"); message.Subject = "test一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十"; client.Send(message); 我这里可以,我使用我们单位自己的smtp服务器,发送单位的邮箱里SmtpClient client = new SmtpClient(); MailMessage message = new MailMessage(); message.SubjectEncoding = UTF8Encoding.UTF8; message.To.Add("[email protected]"); message.Subject = "ccccccccccccccccc监控系统查询名称为:\"001005 新股提示 001006 配股提示001027 基金发行提示001032 操盘必读, 每个交易日天早上8:20应该更新完毕,什么原因我搞不懂\"编号为:的监控规则发生异常"; client.Send(message); 发到Gmail邮箱里也是正常的。要不你试一试别的smtp服务器,或者试一下发到别的邮箱里。 奇怪了 我这里确实只要标题超过一定长度就会乱码 短一点就完全没事smtp server会有这种限制? 我去问问公司的系统运行部先。。感谢findcaiyzh热心的回答 给你发邮件报异常 显示这个“邮箱不可用。 服务器响应为: 5.7.1 Unable to relay” 我设置了SmtpClient的账户和密码之后可以发了 你收到没? 應該是smtp設置的問題吧 我的可以發。但是就是反應慢 我用的outlook 你那里乱码没? 我在Gmail的网页上看的。你知道outlook怎么看邮件原文吗?如果能看的话,看你收到的128个1的邮件原文的主题。如果和下面的一样就是outlook解码的问题了。Subject: =?utf-8?B?MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMQ==?= 这次你用的GB18030方式编码,而且没有用base64,而是Quote-Printable 含中文 且字节数(System.Text.Encoding.Default.GetByteCount() )超过184的都会乱码 短一点就不会。 事这样的=?utf-7?Q?+dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46d... 又收到你的邮件,在gmail中看是:监控系统查询名称为监控系统查询名称为监控系统查询名称为监控系统查询名称为监控系统查询名称为监控系统查询名称为监控系统查询名称为监控系统查询名称为监控系统查询名称为监控系统查询名称为监控系统查询名称为Sujbect的原文是UTF-7编码并被Quote-Printable方式编码Subject: =?utf-7?Q?+dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46-?= 看看你是不是这样原因:XADM: Message with Long Subject Cannot Be Opened by Outlook Web Accesshttp://support.microsoft.com/kb/295327你贴出来的subject原文,长度正好是256 下面帖子的问题和你的问题一摸一样:)看jcl在2楼的回复,果然是outlook的问题http://stackoverflow.com/questions/454833/system-net-mail-and-utf-8bxxxxx-headers我使用的outlook2007好像已经解决这个问题了。 我用的也是outlook2007如果是outlook的原因 为什么当我用一个第三方的邮件发送dll来发同样标题的邮件时 outlook就不显示乱码了呢?不过jcl描述的问题应该和我的是一样的PS:本来都是用那个第三方的dll来发邮件的 只不过它不支持html格式的邮件 所以才换成MailMessage 我把你给我gmail发的邮件转发到公司信箱,用outlook2007接收,主题是可以正常显示的。可能编码方式不一样,mailMessage用得方法比较笨,会使得编码后的subject大于256.估计问题比较难解决了,可以试一试别再标题中方具体内容,只放概述性的东西来缩短主题。 C#程序报错--在线急等 报表的问题???? C# WebClient 下载文件问题 请问如何循环赋不同的值? 怎么将图标加在自己的DLL里啊 这个正则表达式应该怎么写? c#对数字每一行乘以一个数,所得数字有n行相同数位的m个数字相同. 请教一个问题!!! 有一个string类型的变量(里面存放的是xml数据),想把这个string变量中内容,存成xml文件,应该怎么做?谢谢 面试题 怎么在asp.net页面中实现一个班级的模型 求助datagridview问题 C#
MailMessage只提供了SubjectEncoding属性来设置主题的编码
MailMessage message = new MailMessage();
message.To.Add("****@***.**.**");
message.Subject = "test01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";
client.Send(message);你需要给出更多信息。
你的主题是否编码?
是否是你使用的smtp server有些限制?
比方说下面这段就不行ccccccccccccccccc监控系统查询名称为:\"001005 新股提示 001006 配股提示001027 基金发行提示001032 操盘必读, 每个交易日天早上8:20应该更新完毕,什么原因我搞不懂\"编号为:的监控规则发生异常
给你的链接中有例子:
public static string ConvertHeaderToBase64(string s, string charset)
MailMessage message = new MailMessage();
message.SubjectEncoding = UTF8Encoding.UTF8;
message.To.Add("****@****.**.**");
message.Subject = "test一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十一二三四五六七八九十";
client.Send(message);
SmtpClient client = new SmtpClient();
MailMessage message = new MailMessage();
message.SubjectEncoding = UTF8Encoding.UTF8;
message.To.Add("[email protected]");
message.Subject = "ccccccccccccccccc监控系统查询名称为:\"001005 新股提示 001006 配股提示001027 基金发行提示001032 操盘必读, 每个交易日天早上8:20应该更新完毕,什么原因我搞不懂\"编号为:的监控规则发生异常";
client.Send(message);
或者试一下发到别的邮箱里。
smtp server会有这种限制? 我去问问公司的系统运行部先。。感谢findcaiyzh热心的回答
我的可以發。
但是就是反應慢
你知道outlook怎么看邮件原文吗?
如果能看的话,看你收到的128个1的邮件原文的主题。
如果和下面的一样就是outlook解码的问题了。Subject: =?utf-8?B?MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMQ==?=
GB18030方式编码,而且没有用base64,而是Quote-Printable
=?utf-7?Q?+dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46dtFjp3z7ft9n5YviVA158E46d...
XADM: Message with Long Subject Cannot Be Opened by Outlook Web Access
http://support.microsoft.com/kb/295327你贴出来的subject原文,长度正好是256
看jcl在2楼的回复,果然是outlook的问题
http://stackoverflow.com/questions/454833/system-net-mail-and-utf-8bxxxxx-headers我使用的outlook2007好像已经解决这个问题了。
不过jcl描述的问题应该和我的是一样的PS:本来都是用那个第三方的dll来发邮件的 只不过它不支持html格式的邮件 所以才换成MailMessage
可能编码方式不一样,mailMessage用得方法比较笨,会使得编码后的subject大于256.估计问题比较难解决了,可以试一试别再标题中方具体内容,只放概述性的东西来缩短主题。