首页 新闻 会员 周边

调用.Net邮件类发送邮件到Hotmail邮箱问题

0
悬赏园豆:20 [待解决问题]

今天调用.Net邮件类发送邮件到Hotmail邮箱,碰到如下问题:

代码:

MailMessage mailMessage = new MailMessage();//(sendFromEmail, sendToEmails);
mailMessage.From = new MailAddress(sendFromEmail);
mailMessage.To.Add(sendToEmails);
mailMessage.Subject = subject;
mailMessage.Body = body;
mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
mailMessage.IsBodyHtml = true;
try
{
        smtpClient.Send(mailMessage);
        return true;

}

邮件的Body是放在xml文档中的,内容如下:

<ConfigEmailBody>
        <![CDATA[
               <a href="http://localhost/#!/customer/forgot?email=saber@live.com&token=ee1bd557-dd64-47ce-84e4-623e598ad6e1">http://localhost/#!/myspace/basic</a>
        ]]>
</ConfigEmailBody>

但是Hotmail里F12开发人员工具中看到的href内容如何:

http://localhost/#%21/customer/forgot/email=saber%40live.com%26token=ee1bd557-dd64-47ce-84e4-623e598ad6e1。其中的!@& 符号都被转义了,导致点开这个链接只有一个email参数了(token变成了参数值的一部分),这是为什么?

shgq的主页 shgq | 初学一级 | 园豆:144
提问于:2013-01-15 22:11
< >
分享
所有回答(3)
0

邮件发送,如果连接里面带有参数的话,楼主可以对参数进行加密,在接收参数时,对参数进行解密,这样比较安全,我编写邮件发送时采用的就是这样方法,避免不必要的错误。

墨猦 | 园豆:668 (小虾三级) | 2013-01-16 08:44

嗯,参数值加密安全多了,这里我偷懒了。

但问题是两个参数:email和token,中间的&符号被转义了。。

支持(0) 反对(0) shgq | 园豆:144 (初学一级) | 2013-01-16 10:18

@shgq: 这还不容易吗email和token通过特殊字符链接成一个字符串,对这个字符串加密不就好了

支持(0) 反对(0) 墨猦 | 园豆:668 (小虾三级) | 2013-01-17 18:02
0

建议你断点调试一下,这应该是从xml读取出来的时候被转义了,页不是发送出去被转义

Rich.T | 园豆:3440 (老鸟四级) | 2013-01-16 09:32

这是Body里面的字符串,这时候还是没被转义的。

支持(0) 反对(0) shgq | 园豆:144 (初学一级) | 2013-01-16 10:24

@shgq: 

把utf-8编码去掉试试

支持(0) 反对(0) Rich.T | 园豆:3440 (老鸟四级) | 2013-01-16 10:26

@Rich.T: 

还是不行哎。但发给其他邮箱(sina、163、QQ)没这个问题。

而人人网发给hotmail的邮件没有这个问题。

支持(0) 反对(0) shgq | 园豆:144 (初学一级) | 2013-01-16 11:42
0

URL作为参数传递的时候,进行UrlEncode,UrlDecode

IsaacZhang | 园豆:225 (菜鸟二级) | 2013-01-16 10:10

UrlEncode应该这种情况下用的吧:

比如我有一个连接http://localhost/Login?userName=saber & password=123&123,

把&作为参数值的时候要encode一下吧。

而我这情况是不需要encode的,但是&符号却被encode了

支持(0) 反对(0) shgq | 园豆:144 (初学一级) | 2013-01-16 10:31

@shgq:你把整个URL手动进行Encode/Decode就OK了。 

支持(0) 反对(0) IsaacZhang | 园豆:225 (菜鸟二级) | 2013-01-16 11:04

@IsaacZhang: 

整个url进行Encode我做的到,encode完了发到邮件服务器了,之后的Decode我做不到了、

支持(0) 反对(0) shgq | 园豆:144 (初学一级) | 2013-01-16 11:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册